【发布时间】:2018-01-05 05:20:33
【问题描述】:
我遇到以下错误:
Diagnostics: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-467931813-10.3.20.155-1514489559979:blk_1073741991_1167 file=/user/oozie/share/lib/lib_20171228193421/oozie/hadoop-auth-2.7.2-amzn-2.jar
Failing this attempt. Failing the application.
虽然我已经为 /user/oozie/share/lib/ 目录设置了复制因子 3。此路径下的所有 jar 在 3 个数据节点上都可用,但缺少一些 jar。 任何机构都可以建议为什么会发生这种情况以及如何防止这种情况发生。
【问题讨论】:
-
你试过运行一些
hadoop fsck命令吗? -
是的,我试过 hadoop fsck /user/oozie/share/lib/lib_20171228193421/ -files -blocks -racks 命令,响应是:/user/oozie/share/lib/lib_20171228193421/oozie/ Hadoop-auth-2.7.2-AMZN-2.JAR:损坏BlockPool BP-467931813-10.3.20.155-1514489559979块BLK_1073741991缺少1个总尺寸70594 B 0. BP-467931813-10.3.20.155-1514489559979:BLK_1073741991_1167 LEN = 70594 失踪!
-
发生这种情况是因为您的一个数据节点坏了。例如,磁盘可能出现故障。看到这个了吗? stackoverflow.com/questions/19205057/…
-
我同意复制块的所有 3 个数据节点肯定都坏了。但是现在有没有办法让那个块回来。如何防止这种情况发生。
-
在我的例子中,我们需要多次调整集群的大小,以便经常添加和删除新的 DN。那我怎样才能避免这个异常呢。