尝试将某些文件添加到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日志中,运行该命令时没有异常(exception)。
我的设置有什么问题?我只是遵循了本教程中的步骤:http://elephantscale.com/hadoop2_handbook/Hadoop2_Single_Node.html。
我听说我需要关闭IPv6,但这不是很重要吗?
另外,当我调用stop-dfs.sh时,在datanode日志中会打印一个异常:
DataNode: IOException in offerService java.io.IOException: Failed on local exception: java.io.EOFException; Host Details : local host is: "debian/127.0.1.1"; destination host is: "localhost":8020;
但这即使我不运行ny put命令也会发生,仅在我关闭dfs时才会发生。
Namenode webUI说:
Configured Capacity: 1.87 GB DFS Used: 28 KB Non DFS Used: 1.65 GB DFS Remaining: 230.8 MB DFS Used%: 0% DFS Remaining%: 12.04% Block Pool Used: 28 KB Block Pool Used%: 0% DataNodes usages% (Min/Median/Max/stdDev): 0.00% / 0.00% / 0.00% / 0.00% Live Nodes 1 (Decommissioned: 0) Dead Nodes 0 (Decommissioned: 0)
etc / hadoop / slaves只有本地主机行,
/ etc / hosts具有127.0.0.1 localhost和127.0.1.1 debian行。
我该如何解决?你能告诉我我还能检查什么以及如何检查?
最佳答案
最后,我为系统提供了更大的驱动器空间,从而解决了该问题。
我正在使用VirtualBox,因此必须重新安装整个操作系统并安装hadoop。使用新设置,现在可以正常运行。因此,主要猜测是问题与可用空间量有关。即使对于单节点设置,240MB也不够。
关于java - Hadoop中的“could only be replicated to 0 nodes, instead of 1”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25829189/