MST
星途 面试题库

面试题:Hbase中HLog生命周期异常处理机制之数据恢复

在Hbase的HLog生命周期里,假设发生了RegionServer崩溃的异常情况,简述HLog如何协助数据恢复?
19.8万 热度难度
数据库Hbase

知识考点

AI 面试

面试题答案

一键面试
  1. HLog基本概念:HLog(Write Ahead Log)是HBase用于实现数据可靠性的预写式日志。每个RegionServer都有一个HLog实例,所有对该RegionServer上Region的写操作都会先记录到HLog中。
  2. 崩溃时的情况:当RegionServer崩溃时,内存中尚未持久化到HFile的数据(在MemStore中)可能丢失。此时HLog的作用就凸显出来,它记录了所有未持久化的写操作。
  3. 数据恢复流程
    • 识别HLog文件:Master在检测到RegionServer崩溃后,会找到该RegionServer对应的HLog文件。这些HLog文件存储在HDFS上,具有较高的可靠性。
    • 拆分HLog:HLog文件包含了该RegionServer上所有Region的写操作记录。需要将HLog按照Region进行拆分,每个Region对应一部分HLog记录。这是因为不同Region的数据恢复是独立进行的。
    • 重放HLog记录:对于每个拆分后的HLog片段,Region会按照记录的顺序重放写操作。例如,重放Put操作会将数据重新写入MemStore,重放Delete操作会标记相应的数据为删除状态。在重放过程中,MemStore会不断接收重放的数据,当MemStore达到一定阈值(比如默认的128MB)时,会触发Flush操作,将数据持久化到HFile中。

通过上述过程,HLog协助HBase在RegionServer崩溃后恢复丢失的数据,保证数据的一致性和可靠性。