hbase框架简要介绍

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

HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。

上图描述了HadoopEcoSystem中的各层系统,其中HBase位于结构化存储层,HadoopHDFS为HBase提供了高可靠性的底层存储支持,HadoopMapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便。

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

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

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

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

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

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

 

Table & Region

当Table随着记录数不断增加而变大后,会逐渐分裂成多份splits,成为regions,一个region由[startkey,endkey)表示,不同的region会被Master分配给相应的RegionServer进行管理:

 

-ROOT- &&.META. Table

HBase中有两张特殊的Table,-ROOT-和.META.

? .META.:记录了用户表的Region信息,.META.可以有多个regoin

? -ROOT-:记录了.META.表的Region信息,-ROOT-只有一个region

? Zookeeper中记录了-ROOT-表的location

 

Client访问用户数据之前需要首先访问zookeeper,然后访问-ROOT-表,接着访问.META.表,最后才能找到用户数据的位置去访问,中间需要多次网络操作,不过client端会做cache缓存。

MapReduce on HBase

在HBase系统上运行批处理运算,最方便和实用的模型依然是MapReduce,如下图:

 

HBase Table和Region的关系,比较类似HDFSFile和Block的关系,HBase提供了配套的TableInputFormat和TableOutputFormatAPI,可以方便的将HBaseTable作为HadoopMapReduce的Source和Sink,对于MapReduceJob应用开发人员来说,基本不需要关注HBase系统自身的细节。

你可能感兴趣的:(hbase框架简要介绍)