作者:酱油丸子-310 | 来源:互联网 | 2023-05-20 13:54
我们的小型hadoop集群中的空间不足,所以我正在检查HDFS上的磁盘使用情况,我发现大部分空间都被/ hbase/oldWALs文件夹占用.
我已经检查了"HBase权威书"和其他书籍,网站,我也在谷歌搜索我的问题,但我没有找到正确的答案......
所以我想知道这个文件夹是什么,有什么用途,以及如何在不破坏所有内容的情况下从这个文件夹中释放空间......
如果它与特定版本相关......我们的集群在cloudera(hbase 0.98.6)的5.3.0-1.cdh5.3.0.p0.30下.
谢谢你的帮助!
1> mpiffaretti..:
FYI
我已在hbase用户列表中发布此问题.以下是EnisSöztutar(一个hbase提交者)的答案以及我如何解决它:
该文件夹由主人的杂务定期清理.当不再需要WAL文件用于恢复时(当HBase可以保证HBase已刷新WAL文件中的所有数据时),它将被移动到oldWALs文件夹进行存档.日志保持不变,直到完成对WAL文件的所有其他引用.目前有两种服务可以将文件保存在存档目录中.首先是TTL过程,它确保WAL文件至少保持10分钟.这主要用于调试.您可以通过在master中设置hbase.master.logcleaner.ttl配置属性来缩短此时间.它默认为600000.另一个是复制.如果您有复制设置,复制过程将挂起到WAL文件,直到它们被复制.即使您禁用了复制,仍会引用这些文件.
您可以从类(LogCleaner,TimeToLiveLogCleaner,ReplicationLogCleaner)查看master中的日志,以查看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文件夹!
该文件夹不再增长!