HBASE简介

1 Hadoop EcoSystem中的各层系统:

这里写图片描述
其中
??HBase位于结构化存储层,
??Hadoop HDFS为HBase提供了高可靠性的底层存储支持,
??Hadoop MapReduce为HBase提供了高性能的计算能力,
??Zookeeper为HBase提供了稳定服务和failover机制。

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

2.HBASE历史

??Apache HBase最初是Powerset公司为了处理自然语言搜索产生的海量数据而开展的项目。
这里写图片描述

3. HBASE数据类型

这里写图片描述

行健(Row Key):表的主键,表中的记录默认按照行健升序排序 时间戳(Timestamp):每次数据操作对应的时间戳,可以看作是数据的版本号 列族(Column Family):表在水平方向有一个或者多个列族组成,一个列族中可以由任意多个列组成,列族支持动态扩展,无需预先定义列的数量以及类型,所有列均以二进制格式存储,用户需要自行进行类型转换。所有的列族成员的前缀是相同的,例如“abc:a1”和“abc:a2”两个列都属于abc这个列族。 表和区域(Table&Region):当表随着记录数不断增加而变大后,会逐渐分裂成多份,成为区域,一个区域是对表的水平划分,不同的区域会被Master分配给相应的RegionServer进行管理 单元格(Cell):表存储数据的单元。由{行健,列(列族:标签),时间戳}唯一确定,其中的数据是没有类型的,以二进制的形式存储。

4.HBASE架构

这里写图片描述
如上图所示,HBase架构中只有一个Master节点,称HMaster,还有多台RegionServer成为HRegionServer,每个RegionServer包含多个Region。

HBase访问接口:Java,REST,Thrift等 Master:集群的管理服务器,为RegionServer分配Region,负责RegionServer的负载均衡,处理schema更新请求 RegionServer:管理HBase的数据存储,维护Region,处理IO请求。 Zookeeper:保证集群的高可用性、存储Region的寻址入口,并实时监控RegionServer的状态,存储HBase的Schema。

可以看到,client访问hbase上数据的过程并不需要Master参与(寻址访问Zookeeper和RegionServer,数据读写访问RegionServer),Master仅仅维护Table和Region的元数据信息,负载很低。

5. HBase存储格式

HBase中的所有数据文件都存储在Hadoop HDFS文件系统上,主要包括上述提出的两种文件类型:

HFile, HBase中KeyValue数据的存储格式,HFile是Hadoop的二进制格式文件,实际上StoreFile就是对HFile做了轻量级包装,即StoreFile底层就是HFile HLogFile,HBase中WAL(Write Ahead Log) 的存储格式,物理上是Hadoop的Sequence File

6.应用场景

这里写图片描述


发表评论

电子邮件地址不会被公开。 必填项已用*标注