【问题标题】:"could only be replicated to 0 nodes, instead of 1" in HadoopHadoop中的“只能复制到0个节点,而不是1个”
【发布时间】:2014-09-14 01:04:37
【问题描述】:

我在尝试将一些文件添加到 hdfs 时,在我的单节点 Hadoop 安装中遇到了一个著名的“只能复制到 0 个节点,而不是 1 个节点”错误:

$ hdfs dfs -mkdir -p /grep/in 
$ hdfs dfs -put /hadoop_install_location/etc/hadoop/* /grep/in/ 

第一个命令运行正常,第二个产生异常:

    at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:525)
put: File /grep/in/yarn-site.xml._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and no node(s) are excluded in this operation.

这个异常只能在namenode的日志中找到。在 datanode 日志中,运行该命令时没有异常。

我的设置有什么问题?我只是按照本教程中的步骤进行操作:http://elephantscale.com/hadoop2_handbook/Hadoop2_Single_Node.html

我听说我需要关闭 IPv6,但我没有这样做,这重要吗? 另外,当我调用 stop-dfs.sh 时,datanode 日志中会打印一个异常:

DataNode:offerService java.io.IOException 中的 IOException:失败 本地异常:java.io.EOFException;主机详细信息:本地主机是: “debian/127.0.1.1”;目的主机是:“localhost”:8020;

但是即使我不运行 ny put 命令也会发生这种情况,这种情况只会在我每次关闭 dfs 时发生。

Namenode webUI 说:

配置容量:1.87 GB DFS 使用:28 KB 非 DFS 使用:1.65 GB DFS 剩余:230.8 MB DFS 已用百分比:0% DFS 剩余百分比:12.04% 块池 Used: 28 KB Block Pool Used%: 0% DataNodes usages% (Min/Median/Max/stdDev): 0.00% / 0.00% / 0.00% / 0.00% 活动节点 1 (退役:0)死节点 0(退役:0)

etc/hadoop/slaves 只有 localhost 行,

/etc/hosts 有 127.0.0.1 localhost 和 127.0.1.1 debian 行。

我该如何解决?你能告诉我我还能检查什么以及如何检查吗?

【问题讨论】:

  • 您的数据节点是否列在活动节点中?
  • hdfs dfsadmin -report 说它是实时列表
  • 有一个过程,jps 说。并且权限没有问题 - 一切都以 root 身份完成。
  • 尝试从 etc/hosts 中删除 127.0.1.1 对应的条目

标签: java hadoop


【解决方案1】:

最后我通过为我的系统提供更大的驱动空间解决了这个问题。

我正在使用 VirtualBox,所以我不得不重新安装整个操作系统和 hadoop。使用新设置,它现在可以正常工作了。所以主要猜测是问题与可用空间量有关。即使是单节点设置,240MB 也不够。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2013-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多