HBase | oldWALs目录文件剧增占用磁盘空间问题

出现问题原因:

当/hbase/WALs中的HLog文件被持久化到存储文件中,且这些Hlog日志文件不再被需要时,就会被转移到{hbase.rootdir}/oldWALs目录下,该目录由HMaster上的定时任务负责定期清理。

HMaster在做定期清理的时候首先会检查zookeeper中/hbase/replication/rs下是否有对应的复制文件,如果有就放弃清理,如果没有就清理对应的hlog。在手动清理oldWALs目录数据的同时,如果没有删除对应的znode数据,就会导致HMaster不会自动清理oldWALs。

解决方案:

1、进入Zookeeper目录下删除有关节点

 

2、确保hbase-site.xml中的有添加属性hbase.replication=false和属性hbase.backup.enable=false,如果是true就改成false即可,然后重启整个hbase集群。

<property>
    <name>hbase.replication</name>
    <value>false</value>
</property>

<property>
    <name>hbase.backup.enable</name>
    <value>false</value>
</property>

3、接下来可以看到oldWALs目录下占用空间已经被逐渐清理为

HBase 中,`/hbase/oldWALs` 目录是一个特殊的目录,主要用于存放已经不再需要但在某些情况下仍需保留一段时间的旧 Write-Ahead Logs (WAL) 文件。以下是关于 `/hbase/oldWALs` 的详细介绍: ### 功能与作用 1. **临时存储**:当 HBase 完成对 WAL 日志文件中所包含的数据的操作(例如数据已成功写入 HDFS 或者经过了 Compaction 操作),并且确认这些日志不再被 RegionServers 所引用时,这些 WAL 文件通常会被移动到 `/hbase/oldWALs` 目录下。 2. **备份与恢复**:虽然大多数时候这些 WAL 已经完成了它们的任务,但在极少数情况下,如果有新的 Region Server 加入集群或是发生其他异常情况导致部分数据未能及时同步,则可以从 `oldWALs` 中找回并重新处理未完成的日志项。 3. **清理机制**:为了避免过多的历史 WAL 占用磁盘空间,在满足一定条件后(比如超过指定的时间窗口或达到最大数目限制等),HMaster 会启动一个后台线程自动删除位于此目录下的无用 WAL 文件。 4. **安全性保障**:通过设置合理的留存时间及规则管理该路径的内容,能够有效防止因误删而引发的数据丢失风险。 ### 使用建议 - 如果您发现 `oldWALs` 下面积累了大量文件,请考虑是否有必要增加清理频率或缩短生命周期期限; - 对于大规模生产环境来说,应该密切关注其增长趋势并与监控系统集成以便实时响应潜在问题。 总结而言,`/hbase/oldWALs` 提供了一个安全可靠的途径用于暂时保管那些曾经重要但现在处于“待定”状态的日志信息,这对于提高整个数据库系统的稳定性有着积极意义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值