HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase访问接口

1.Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据

2.HBase Shell,HBase的命令行工具,最简单的接口,适合HBase管理使用

3.Thrift Gateway,利用Thrift序列化技术,支持C++,PHP,Python等多种语言,适合其他异构系统在线访问HBase表数据

4.REST Gateway,支持REST 风格的Http API访问HBase, 解除了语言限制

5.Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计

6.Hive,当前Hive的Release版本尚没有加入对HBase的支持,但在下一个版本Hive 0.7.0中将会支持HBase,可以使用类似SQL语言来访问HBase



HBase的特点:

1.强一致性:同一行的读写只在同一台regionserver进行

2.水平伸缩:region自动分裂,master的balance。只增加机器就可

3.行事物:同一行的列的写入时原子的

备注:"原子操作(atomic operation)是不需要synchronized",所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch (切换到另一个线程)。

4.column oriented + 三维有序

5.支持范围查询

6.高性能随机写

7.和hadoop无缝集成:数据直用


HBase不支持:二级索引,RDBMS的跨行跨表等的特性