我收到以下错误:
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。这条路径下的所有罐子都可以在3个数据节点上使用,但是缺少几个罐子。 任何机构都可以说明为什么会发生这种情况以及如何防止这种情况发生。
答案 0 :(得分:0)
在尝试从hdfs读取文件时遇到了相同的异常。该链接下的“客户端在连接到DataNodes时使用主机名”部分下的解决方案对我有效: https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsMultihoming.html#Clients_use_Hostnames_when_connecting_to_DataNodes
我将此XML块添加到“ hdfs-site.xml”,并重新启动了datanode和namenode服务器:
<property>
<name>dfs.client.use.datanode.hostname</name>
<value>true</value>
<description>Whether clients should use datanode hostnames when
connecting to datanodes.
</description>
</property>
答案 1 :(得分:0)
请检查hdfs目录中文件的所有者,因为所有者为“ root”,所以我遇到了此问题,将其更改为“ your_user”后就解决了。