我尝试在两个节点中安装hadoop。两个节点都已启动并正在运行。 namenode在Ubuntu 10.10和Fedora 13上的Datanode上运行。在将文件从本地文件系统复制到hdfs时,我遇到了以下错误。
终端显示:
12/04/12 02:19:15 INFO hdfs.DFSClient: Exception in createBlockOutputStream java.io.OException: Bad connect ack with firstBadLink as 10.211.87.162:9200
12/04/12 02:19:15 INFO hdfs.DFSClient: Abandoning block blk_-1069539184735421145_1014
namenode中的日志文件显示:
2012-10-16 16:17:56,723 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: DatanodeRegistration(10.6.2.26:50010, storageID=DS-880164535-10.18.13.10-50010-1349721715148, infoPort=50075, ipcPort=50020):DataXceiver
java.net.NoRouteToHostException: No route to host
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:404)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.writeBlock(DataXceiver.java:282)
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:103)
at java.lang.Thread.run(Thread.java:662)
可用的数据节点表示为2.我已禁用防火墙和selinux。 hdfs-site.xml
中也进行了以下更改dfs.socket.timeout - > 360000
dfs.datanode.socket.write.timeout - > 3600000
dfs.datanode.max.xcievers - > 1048576
两个节点都运行sun-java6-jdk,datanode包含Openjdk,但路径设置已经为sun java。
然而同样的错误仍然存在。
可能是什么解决方案。
答案 0 :(得分:3)
那是因为您的防火墙已启用。
试
sudo /etc/init.d/iptables stop
如果您使用的是Ubuntu,请执行
sudo ufw disable
这应该可以解决问题。
答案 1 :(得分:0)
异常日志提到失败原因是No route to host
。
尝试ping 10.6.2.26
来测试您的网络连接。