我们的小型hadoop集群中的空间不足,所以我正在检查HDFS上的磁盘使用情况,我发现大部分空间都被/ hbase / oldWALs文件夹占用。
我查过“HBase权威书”和其他书籍,网站,我也在谷歌搜索我的问题,但我没有找到正确的答案......
所以我想知道这个文件夹是什么,有什么用途,以及如何在不破坏所有内容的情况下从这个文件夹中释放空间......
如果它与特定版本有关......我们的群集在cloudera(hbase 0.98.6)的5.3.0-1.cdh5.3.0.p0.30下。
谢谢你的帮助!
答案 0 :(得分:9)
FYI
我已在hbase用户列表中发布此问题。 以下是EnisSöztutar(hbase提交者)的答案以及我是如何解决的:
文件夹会被主人的杂务定期清理。当WAL文件是 不再需要用于恢复目的(当HBase可以保护HBase时) 已刷新WAL文件中的所有数据),它被移动到oldWALs 档案文件夹。日志保持在那里直到所有其他引用 WAL文件完成了。目前有两项服务可以保留 存档目录中的文件。首先是一个TTL过程,它确保了 WAL文件至少保存10分钟。这主要用于调试。您 可以通过设置hbase.master.logcleaner.ttl配置来减少这段时间 主人的财产。它默认为600000.另一个是复制。 如果您具有复制设置,则复制过程将挂起 WAL文件,直到它们被复制。即使你禁用了 复制时,文件仍然被引用。
您可以从类(LogCleaner, TimeToLiveLogCleaner,ReplicationLogCleaner)查看master是否 实际上运行这个家务活,是否有任何例外。
复制确实无法在所有群集上进行,但过去它是启用的,因为我们使用hbase-indexer将数据从HBase复制到Solr,而这种机制是基于复制。
我在hbase shell上运行了这个命令:
hbase(main):005:0> list_peers
PEER_ID CLUSTER_KEY STATE TABLE_CFS
Indexer_profilesIndexer m1.prod.ps,m2.prod.ps,m3.prod.ps:2181:/ngdata/sep/hbase-slave/Indexer_profilesIndexer DISABLED nil
1 row(s) in 0.0070 seconds
hbase(main):006:0> remove_peer 'Indexer_profilesIndexer'
0 row(s) in 0.0050 seconds
hbase(main):007:0> list_peers
PEER_ID CLUSTER_KEY STATE TABLE_CFS
0 row(s) in 0.0020 seconds
最后我删除了hdfs上的oldsWALs文件夹!
该文件夹不再增长!