【问题标题】:HBase oldWALs: what it is and how can I clean it?HBase oldWALs:它是什么以及如何清理它?
【发布时间】:2015-04-27 19:42:44
【问题描述】:

我们的小型 hadoop 集群空间不足,所以我检查了 HDFS 上的磁盘使用情况,发现大部分空间都被 /hbase/oldWALs 文件夹占用了。

我已经查看了“HBase Definitive Book”和其他书籍、网站,我还在谷歌上搜索了我的问题,但我没有找到合适的回复......

所以我想知道这个文件夹是做什么的,有什么用,以及如何在不破坏所有内容的情况下从这个文件夹中释放空间...

如果它与特定版本有关...我们的集群在 cloudera (hbase 0.98.6) 的 5.3.0-1.cdh5.3.0.p0.30 下。

感谢您的帮助!

【问题讨论】:

    标签: hadoop hbase


    【解决方案1】:

    仅供参考

    我已经在 hbase 用户列表中发布了这个问题。 这是来自 Enis Söztutar(一个 hbase 提交者)的答案以及我是如何解决的:

    master 中的杂务会定期清理该文件夹。当一个 WAL 文件是 不再需要用于恢复目的(当 HBase 可以保证 HBase 已刷新 WAL 文件中的所有数据),将其移至 oldWAL 用于存档的文件夹。日志一直保留在那里,直到所有其他引用 WAL 文件完成。目前有两种服务可以保持 存档目录中的文件。首先是一个 TTL 过程,它确保 WAL 文件至少保留 10 分钟。这主要是为了调试。你 可以通过设置 hbase.master.logcleaner.ttl 配置来减少这个时间 主人的财产。默认为 600000。另一个是复制。 如果您有复制设置,复制过程将挂在 WAL 文件,直到它们被复制。即使您禁用了 复制,文件仍然被引用。

    您可以从类中查看来自 master 的日志(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 文件夹!

    文件夹不再增长!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多