我在CentOS7.0上安装了hadoop 2.5.1
我正在使用3台拥有以下主机文件的计算机,与所有3台计算机相同
我没有使用DNS。
XXX.XXX.XXX.65 mccb-com65 #server
XXX.XXX.XXX.66 mccb-com66#client01
XXX.XXX.XXX.67 mccb-com67#client02
127.0.0.1 localhost
127.0.1.1 mccb-com65
我执行命令
$ hadoop fs -copyFromLocal /home/hadoop/hdfs/hdfs/s_corpus.txt hdfs://XXX.XXX.XXX.65:9000 / tmp /
我遇到以下错误消息
INFO hdfs.DFSClient:createBlockOutputStream中的异常 java.net.NoRouteToHostException:无主机路由 sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) 在 org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 在org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529)at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1526) 在 org.apache.hadoop.hdfs.DFSOutputStream $ DataStreamer.createBlockOutputStream(DFSOutputStream.java:1328) 在 org.apache.hadoop.hdfs.DFSOutputStream $ DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1281) 在 org.apache.hadoop.hdfs.DFSOutputStream $ DataStreamer.run(DFSOutputStream.java:526) 15/02/27 16:57:40 INFO hdfs.DFSClient:放弃 BP-1257634566-XXX.XXX.XXX.65-1425014347197:blk_1073741837_1013 15/02/27 16:57:40 INFO hdfs.DFSClient:不包括datanode XXX.XXX.XXX.67:50010 < - 与另一个救助节点XXX.XXX.XXX.66
相同
我关闭了两台计算机mccb-com66和mccb-com67的所有防火墙,如下所示。
$ systemctl status iptables
iptables.service - 带iptables的IPv4防火墙已加载:已加载 (/usr/lib/systemd/system/iptables.service; disabled)
活性: 不活动(死)
另外我也关闭了selinux。
datanode和nodemanager在两台机器中都处于活动状态 我可以检查一下状态 jps和 http://mccb-com65:50070和 http://mccb-com65:8088
我失踪了什么?
你能帮助我吗?答案 0 :(得分:1)
即使我关闭iptables,它也不是有效的解决方案。
用防火墙-cmd逐个打开端口后,它可以工作..
所有奴隶(66和67)
$firewall-cmd --zone=public --add-port=8042/tcp
$firewall-cmd --zone=public --add-port=50010/tcp
$firewall-cmd --zone=public --add-port=50020/tcp
$firewall-cmd --zone=public --add-port=50075/tcp
$firewall-cmd --reload
然后它有效。
但是,由于我无法打开所有需要运行Hadoop App的端口,
关闭firewalld是合理的,例如
$systemctl stop firewalld
$systemctl disable firewalld
并检查状态
$Systemctl status firewalld
答案 1 :(得分:0)
你的/ etc / hosts应该包含:
XXX.XXX.XXX.65 mccb-com65 #server
XXX.XXX.XXX.66 mccb-com66 #client01
XXX.XXX.XXX.67 mccb-com67 #client02
删除
127.0.0.1 localhost
127.0.1.1 mccb-com65