面试题答案
一键面试主要组件
- ZooKeeper:用于监控RegionServer的状态,当RegionServer发生故障时,ZooKeeper能及时感知,并通知Master。
- HMaster:负责在RegionServer故障后,重新分配故障RegionServer上的Region到其他正常的RegionServer上。
故障恢复流程
- 故障感知
- RegionServer与ZooKeeper保持心跳连接。当RegionServer发生故障,心跳停止,ZooKeeper检测到连接丢失,会触发相应事件。
- ZooKeeper通过节点状态变化告知HMaster某RegionServer已故障。
- 元数据清理
- HMaster从HBase的元数据(.META.表)中移除故障RegionServer相关的元数据信息,这些信息记录了Region与RegionServer的映射关系。
- Region重新分配
- HMaster根据负载均衡算法,选择合适的其他RegionServer来承载故障RegionServer上的Region。
- 它会读取.META.表,确定故障RegionServer上所有Region的信息,并将这些Region分配到可用的RegionServer上。
- Region恢复
- 被分配到新RegionServer的Region开始恢复工作。
- RegionServer从HDFS中读取对应Region的HLog(预写日志),HLog记录了该Region在故障前的所有修改操作。
- 通过回放HLog中的记录,RegionServer将Region的数据恢复到故障前的状态,确保数据的一致性和完整性。