NoRouteToHostException 而 hadoop fs -copyFromLocal
NoRouteToHostException while hadoop fs -copyFromLocal
我在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: Exception in createBlockOutputStream
java.net.NoRouteToHostException: No route to host at
sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at
sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739)
at
org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529) at
org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1526)
at
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1328)
at
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1281)
at
org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:526)
15/02/27 16:57:40 INFO hdfs.DFSClient: Abandoning
BP-1257634566-XXX.XXX.XXX.65-1425014347197:blk_1073741837_1013
15/02/27 16:57:40 INFO hdfs.DFSClient: Excluding datanode
XXX.XXX.XXX.67:50010 <-- the same as another salve node XXX.XXX.XXX.66
我关闭了两台计算机 mccb-com66 和 mccb-com67 的所有防火墙,如下所示。
$systemctl status iptables
iptables.service - IPv4 firewall with iptables Loaded: loaded
(/usr/lib/systemd/system/iptables.service; disabled)
Active:
inactive (dead)
此外,我还关闭了 selinux。
datanode 和 nodemanager 在两台机器上都存活
我可以检查状态
jps 和
http://mccb-com65:50070 和
http://mccb-com65:8088
我错过了什么?
有人能帮帮我吗???
您的 /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
即使我关闭了 iptables,它也不是有效的解决方案。
我用firewall-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
我在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: Exception in createBlockOutputStream java.net.NoRouteToHostException: No route to host at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529) at org.apache.hadoop.hdfs.DFSOutputStream.createSocketForPipeline(DFSOutputStream.java:1526) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.createBlockOutputStream(DFSOutputStream.java:1328) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1281) at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:526) 15/02/27 16:57:40 INFO hdfs.DFSClient: Abandoning BP-1257634566-XXX.XXX.XXX.65-1425014347197:blk_1073741837_1013 15/02/27 16:57:40 INFO hdfs.DFSClient: Excluding datanode XXX.XXX.XXX.67:50010 <-- the same as another salve node XXX.XXX.XXX.66
我关闭了两台计算机 mccb-com66 和 mccb-com67 的所有防火墙,如下所示。
$systemctl status iptables
iptables.service - IPv4 firewall with iptables Loaded: loaded (/usr/lib/systemd/system/iptables.service; disabled)
Active: inactive (dead)
此外,我还关闭了 selinux。
datanode 和 nodemanager 在两台机器上都存活 我可以检查状态 jps 和 http://mccb-com65:50070 和 http://mccb-com65:8088
我错过了什么?
有人能帮帮我吗???
您的 /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
即使我关闭了 iptables,它也不是有效的解决方案。
我用firewall-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