HBase 体系结构
Client
- 客户端包含访问 HBase 的接口,同时在缓存中维护着已经访问过的 Region 位置信息,用来加快后续数据访问过程
Zookeeper
在 HBase 系统中,ZooKeeper 扮演着非常重要的角色
- 实现 HMaster 高可用:通常情况下系统中只有一个 HMaster 工作,一旦 HMaster(Active)由于异常宕机,ZooKeeper 会检测到该宕机事件,并通过一定机制选举出新的 HMaster,保证系统正常运转。
- 管理系统核心元数据:管理当前系统中正常工作的 RegionServer 集合,保存系统元数据表 hbase:meta 所在的 RegionServer 地址等。
- 参与 HRegionServer 宕机恢复:ZooKeeper 通过心跳可以感知到 HRegionServer 是否宕机,并在宕机后通知 HMaster 进行宕机处理。
- 实现分布式表锁:HBase 中对一张表进行各种管理操作需要先加表锁,防止其他用户对同一张表进行管理操作,造成表状态不一致。和其他 关系型数据库(RDBMS) 表不同,HBase 中的表通常都是分布式存储,ZooKeeper 可以通过特定机制实现分布式表锁。
HMaster
HMaster 主要负责 HBase 系统的各种管理工作
- 处理用户的各种管理请求,包括建表、修改表、权限操作、切分表、合并数据分片以及 Compaction 等。
- 管理集群中所有 HRegionServer,包括 HRegionServer 中 Region 的负载均衡、HRegionServer 的宕机恢复以及 Region 的迁移等。
- 清理过期日志以及文件,HMaster 会每隔一段时间检查 HDFS 中 HLog 是否过期、HFile 是否已经被删除,并在过期之后将其删除。
HRegionServer
HRegionServer 主要负责响应用户的 I/O 请求,是 HBase 中最核心的模块,由 WAL(HLog)、BlockCache以及多个 Region 构成
- 负责维护分配给自己的 Region
- 响应用户的读写请求
- 缓存的刷新
- StoreFile 的合并
HDFS
HBase 底层依赖 HDFS 组件存储实际数据,包括用户数据文件、HLog 日志文件等最终都会写入 HDFS 落盘。HDFS 是 Hadoop 生态圈内最成熟的组件之一,数据默认三副本存储策略可以有效保证数据的高可靠性。HBase 内部封装了一个名为 DFSClient 的 HDFS 客户端组件,负责对 HDFS 的实际数据进行读写访问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通