架构图如下
image.pngzookeeper
- HBase 在 zookeeper 中存储节点 /hbase 的子节点如下图: image.png
-
/hbase/backup-masters Master: 节点的备份节点, 实现 HBase 的高可用
-
/hbase/meta-region-server: 存储 HBase 集群 hbase:meta 元数据所在 RegionServer 访问地址
-
/hbase/table: 集群中所有的表信息
-
/hbase/region-in-transition: HBase 迁移 region 时使用
-
/hbase/table-lock: 用 zookeeper 实现分布式锁, 用于 HBase 表的 DDL 操作
-
/hbase/rs: 临时节点, 集群中所有运行的 RegionServe, 通过心跳感知 RegionServer 是否宕机, 并在宕机后通知 HMaster 处理
HRegionServer 响应用户 IO 请求
WAL(HLog):
- 防止缓存数据丢失, 数据写入缓存之前会先写入 HBase, 即使写缓存失效, 也可以通过 HLog 日志进行恢复
- 用于主从复制, 通过回放主服务器的 HLog 实现主从复制
BlockCache
- BlockCache称为读缓存,HBase 会将一次文件查找的 Block 块缓存到 Cache 中,以便后续同一请求或者邻近数据查找请求,可以直接从内存中获取,避免昂贵的IO操作
Region
- 数据的一个分片, 当数据表的大小超过一定阀值时就会被水平切分, 分裂为两个 Region, Region 是负载均衡的基本单位, 通常一张表的 region 会分布在多个 RegionServer 上面
HMaster
- 处理用户的管理请求, 建表、删表、修改表、切分表、合并数据和 compaction 操作
- 管理集群中所有 regionServer, 负责 region 的负载均衡,以及 RegionServer 的宕机恢复
网友评论