Hbase系统架构

http://www.cnblogs.com/shitouer/archive/2012/06/04/2533518.html

HBase数据模型

组成部件说明:

RowKey:    Table主键行键Table中记录按照RowKey排序

Timestamp:  每次对数据操作对应的时间戳,也即数据的versionnumber

ColumnFamily: 列簇,一个table在水平方向有一个或者多个列簇,列簇可由任意多个Column组成,列簇支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换

Table&Region

1.Table随着记录增多不断变大,会自动分裂成多份Splits,成为Regions

2.一个region由[startkey,endkey)表示

3.不同region会被Master分配给相应的RegionServer进行管理

两张特殊表:-ROOT-&.META.

.META.  记录用户表的Region信息,同时,.META.也可以有多个region

-ROOT- 记录.META.表的Region信息,但是,-ROOT-只有一个region

Zookeeper中记录了-ROOT-表的location

客户端访问数据的流程:

Client->Zookeeper->-ROOT-->.META.->用户数据表

多次网络操作,不过client端有cache缓存

组成部件说明

Client:

使用HBaseRPC机制与HMaster和HRegionServer进行通信

Client与HMaster进行通信进行管理类操作

Client与HRegionServer进行数据读写类操作

Zookeeper:

ZookeeperQuorum存储-ROOT-表地址、HMaster地址

HRegionServer把自己以Ephedral方式注册到Zookeeper中,HMaster随时感知各个HRegionServer的健康状况

Zookeeper避免HMaster单点问题

HMaster:

HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的MasterElection机制保证总有一个Master在运行

主要负责Table和Region的管理工作:

1管理用户对表的增删改查操作

2管理HRegionServer的负载均衡,调整Region分布

3RegionSplit后,负责新Region的分布

4在HRegionServer停机后,负责失效HRegionServer上Region迁移

HRegionServer:

HBase中最核心的模块,主要负责响应用户I/O请求,向HDFS文件系统中读写数据

相关推荐