hadoop学习——Hbase

Hbase简介


Hbase是Apche Hadoop中的一个子项目,Hbase依托于Hadoop的hdfs作为最基本的存储单元,Hbase是运行在Hadoop上的NoSQL数据库,它是一个分布式可扩展的大数据仓库,也就是说Hbase能够利用hdfs的分布式处理模式,并从hadoop的mapreduce程序模型中获益,这意味着一组商业硬件存储许多具有十亿行和上百万列的大表,除去hadoop的优势,hbase本身就是十分强大的数据库,能够融合key、value存储模式带来的实时查询的能力,以及通过mapreduce进行离线处理或者批处理的能力。总的来说,hbase能够让你在大量数据中查询记录、也可以从中获得综合分析报告。


Hbase不是一个关系型数据库,它需要不同的方法定义你的数据模型,定义了四维数据模型:

  • 行键:每行都有唯一的行键,没有数据类型,内部被认为是字节数组。
  • 列修饰符:列簇定义真是的列,列修饰符就是列本身
  • 版本:每列都有一个可配置的版本数量,可以通过列修饰符的制定版本获取数据。

Hive和hbase的区别:
hive是一个构建在hadoop基础设施之上的数据仓库,通过hive可以使用hql语言查询存放在hdfs上的数据,hql最终被转化为mapreduce。不能进行交互查询,因为只能批量执行hadoop。
hbase是一种key、value系统,运行在hdfs之上,能够在数据库上实时运行,而不是运行mapreduce任务。hive帮助熟悉sql的人运行mapreduce任务。同时能够和现存的sql工具整合在一起。运行hive查询会花费很长时间,默认遍历表中所有数据,也可以通过hive分区机制控制。
hbase支持四种主要的操作,更新行,查看一个范围的cell获取指定的行。
Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。
Hbase非常适合用来进行大数据的实时查询。Facebook用Hbase进行消息和实时的分析。它也可以用来统计Facebook的连接数。


总结:
hive和hbase是两种基于hadoop的不同技术–hive是一种类sql的引擎,并且运行mapreduce任务,而hbase是基于hadoop之上的nosql数据库,hive用来统计查询,hbase用来实时查询。
Hive是建立在hadoop之上为了减少mapreduce jobs编写工作的批处理系统,hbase为了支持弥补hadoop对实时操作的缺陷的项目。
全表扫描:hive
索引访问:hbase


你可能感兴趣的:(hadoop)