Hbase物理模型
image.pngHBase主要有三个进程。 HMaster, HRegionServer, Zookeeper(进程名为HQuorumPeer). 独立模式下运行的时候用jps查看只能看到一个进程HMaster, 运行在一起.
下图是一个分布式的部署模式:
image.png
此集群拥有主备Master(只有一个Master能工作,需要通过zookeeper选举), 多个zookeeper和多个regionServer。
HMaster主服务器:
- 只有一个工作中
- 为RegionServer分配region
- 负载均衡
- RegionServer 的failover
- GFS上垃圾文件回收
- 处理schema更新请求
Region和Region服务器:
- 表在行方向上按行健范围划分的是Region
- 一个表处世只有region, 记录数增加到某个阈值时才开始分裂
- Region是分布式存储和负载均衡的最小单元。 注意: Region里还有按Column Family划分存储
- 一个节点一个HRegionServer
- 一个RegionServer管理多个Region实例
- 一个Region包含HLog和存放数据的Store
HLog:
用于灾难恢复,WAL log表示wirite ahead log, 写之前先记录操作,然后才会写数据
Store:
- Store是Region里按列簇划分的存储单元。分为内存的memstore和硬盘上的HFile.
- 写操作先写入memstore, 到阈值写入StoreFile(HFile)
- HFile文件数量正常到阈值会触发region分裂,由HMaster分配到相应的region服务器上
- 客户端检索数据,先查内存,再查文件
Hbase访问流程
image.png客户端读写访问流程
- HBase client通过访问zookeeper上保存的hbase:meta表的位置确定需要访问的region.
- client直接访问RegionServer做读写,不需要经过HMaster
- HMaster会为fail的regionServer的上的region做重新分配,也会做region的load balance.
客户端如果访问管理类的操作,需要与HMaster进行通信。
再回顾总结下各个进程的主要功能:
-
HMaster:
- 分配region到Region server
- Region server的负载均衡
- Region Server 的failover
- HDFS的垃圾回收
- 处理schema更新请求
-
HRegionServer:
- 维护region, 处理对该region请求
- 切分region
-
Zookeeper:
- Master选举
- 存储region元数据
- 存储region server状态, 维护和region server的心跳
- 存储HBase的schema和table
网友评论