从我们的hbase集群中删除几个节点时,我们过早地退出了hadoop安全模式(在解除完成之前)。当我们运行hdfs fsck
时,我们意识到有一些丢失的块。我们立即将我们删除的节点添加回集群中。 fsck
仍然报告缺少某些块。
与此同时,HBase无法从这些地区找到这些缺失的区块。什么是解决问题的最佳方法?我们知道HBase无法找到的HDFS文件的位置。
更新:
更正 - namenode仅包含有关丢失块的元数据。缺少实际的块。我们现在如何修复HBase从区域服务器中删除这些数据块?
答案 0 :(得分:0)
我们通过迁移到最新版本的HBase(0.94.1RC)来解决问题。此版本附带了更好的修复工具(hbck
)。使用它,我们能够修复.META.
并修复HDFS漏洞。