HBase HFile和Hlog的cleaner执行流程和配置项

本文介绍了HBase中的HFile和Hlog的清理流程。HFile用于存储数据,Hlog确保数据写入的可靠性。HFileCleaner和LogCleaner分别负责HFile和Hlog的清理,它们继承自CleanerChore类。LogCleaner在开启复制的情况下,还会执行ReplicationLogCleaner。HFile的清理配置包括'hbase.master.hfilecleaner.plugins'和'hbase.master.hfilecleaner.ttl',而Hlog的清理配置涉及'hbase.regionserver.optionallogflushinterval'等参数。初始化和执行逻辑在HMaster启动时进行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HFile和Hlog是HBase中两大文件存在格式,HFile用于存储数据,Hlog用于保证数据写入HFile中。
两者都有自己的cleaner逻辑。HFileCleaner和LogCleaner都是继承CleanerChore类
public class HFileCleaner extends CleanerChore<BaseHFileCleanerDelegate>
public class LogCleaner extends CleanerChore<BaseLogCleanerDelegate>

需要说明的是LogCleaner 除了默认的org.apache.hadoop.hbase.master.TimeToLiveLogCleaner
如果开启了replication,还会执行hadoop.hbase.replication.master.ReplicationLogCleaner
当replication处理完一个Hlog后会删除Zookeeper上的hlog节点,ReplicationLogCleaner会默认每60扫描( 60s int cleanerInterval = conf.getInt("hbase.master.cleaner.interval", 60 * 1000)).oldlogs目录中的每个一个hlog, 检查ZK是否已经删除,如果ZK上已经不存在该Hlog,则会从物理上直接删除该hlog

在实际Master启动时,执行逻辑的是
Hmaster.run()->
Hmaster.finishInitialization()->
startServiceThreads()->执行下面的代码就是初始化HFileCleaner和LogCleaner
   //start the hfile archive cleaner thread
LOG.info("I
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值