我根据How to install Apache Hadoop 2.6.0 in Ubuntu (Multi node/Cluster setup)设置了Hadoop 2.6.0,其中包含1个主服务器和2个从服务器。毕竟我检查了master和slave上的jps,看起来都很好:NameNode,SecondaryNameNode,masterManager上的ResourceManager;和DataNode,奴隶上的NodeManager。但是当我浏览hadoopmaster:8088时,有0个活动节点。当我跑
时hadoop fs -put ~/h-localdata/* /input/
它显示了这个错误:
put: File /input-01/h-localdata/README.txt._COPYING_ could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
请帮我解决这个问题!
答案 0 :(得分:1)
确保datanode指向正确的master。检查hdfs dfsadmin -report以检查集群的报告。
答案 1 :(得分:0)
尝试分别删除“temp”,“datanode”,“namenode”文件夹中的文件并格式化namenode,然后重试。
答案 2 :(得分:0)
我检查了奴隶中的日志文件,它指出:
WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server: hadoop.master/192.168.10.52:9000
我已经阅读了很多建议,其中大部分与/ etc / hosts文件有关,但不是我的情况。我在master(centos 6.5)上禁用了防火墙:
# service iptables save
# service iptables stop
# chkconfig iptables off
这完美无缺。希望这也有助于其他任何人。
答案 3 :(得分:0)
对我而言,/ etc / hosts中的条目强制hadoop主节点仅侦听环回适配器,因此客户端无法访问它。
答案 4 :(得分:0)
我通过禁用主设备和从设备上的防火墙(都在CentOS 7
上)解决了这个问题,如下所示:
systemctl stop firewalld.service
systemctl disable firewalld.service