在上一篇博文中,我们提到Master启动时会启动SplitLogManager, 并进行log分割。那么什么是log split, 为什么要进行log split呢?要回答这个问题,我们先来看一下HLog(也叫WAL)的格式,如下图:

HLog是每个Region server只有一份,一个region server上的所有region共用一个Hlog, hlog用来在系统异常down掉,MemStore中大量更新丢失时,对数据进行恢复。从上图中可以看出,对每个region的更新在hlog里不是连续的,而是分散在Hlog里的。Hlog中的每项更新都会记录该更新所属的region, HBase要通过在每个region上应用hlog中的更新来恢复数据,因此需要把hlog中的更新按照region分组,这一把hlog中更新日志分组的过程就称为log split(日志分割)。

本文介绍了HBase中的日志分割(Log Split)过程,它是为了在系统异常后通过HLog恢复数据。从HBase 0.92版本开始,引入了分布式日志分割技术,提高日志分割效率。SplitLogManager在HMaster启动时运行,将任务分配给region server并行处理,由HLogSplitter执行实际的日志分割工作。
最低0.47元/天 解锁文章
5879

被折叠的 条评论
为什么被折叠?



