首页 > 技术文章 > Hbase组件

ng1991 2017-07-18 14:44 原文

1、zookeeper 

存储Hbase元数据信息

实时监控RegionServer

存储所有Region的寻址入口

保证Hbase集群中只有一个Master

 

2、client

管理类操作,client与HMaster进行RPC通信

数据读写操作,client与RegionServer进行RPC通信

 

3、HMaster

HMaster没有单点问题,在Hbase中可以启动多个HMaster,通过Zookeeper的Master选举机制保证总有一个Master正常运行并提供服务,其他HMaster作为备选时刻准备提供服务。HMaster主要负责Table和Region的管理工作。

管理用户对表的增删改查

管理RegionServer的负载均衡,调整region分布

在region分裂后,负责新region的分配

在regionserver死机后,负责失效RegionServer上的Region迁移

 

4、HRegionServer

内部管理一系列HRegion对象,每个HRegion对应了Table中的一个Region

HRegion由多个HStore组成,每个HStore对应了Table中的一个Column Family的存储

HStore存储是Hbase存储的核心,由两部分组成:MemStore和StoreFile

            用户写入的数据首先会放入MemStore中,当MemStore满了以后会缓冲成一个StoreFile(底层实现是HFile),当StoreFile文件数量达到一定的阀值,会触发Compact操作,将多个StoreFile合并成一个StoreFile,在合并的过程中会进行版本合并和数据删除,因此可以看出Hbase实际只有数据新增,所有的更新和删除操作都是在后续的Compact过程中进行的,这使得用户的写操作只要进内存中就可以了立即返回了,保证了Hbase I/O的高性能。

          StoreFile在Compact之后,会形成越来越大的StoreFile,当单个StoreFile大小超过一定的阀值之后,会触发split操作,同时把当前的region分裂成2个region,父

region会下线,新分裂的2个子region会被HMaster分配到相应的HRegionServer上。

推荐阅读