4

我尝试在两个节点上安装 hadoop。两个节点都已启动并正在运行。namenode 在 Ubuntu 10.10 上运行,Datanode 在 Fedora 13 上运行。在将文件从本地文件系统复制到 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 进行了路径设置。

然而,同样的错误仍然存​​在。

可能是什么解决方案。

4

2 回答 2

3

那是因为您的防火墙已打开。

尝试

sudo /etc/init.d/iptables stop

如果您在 Ubuntu 上,请执行

sudo ufw disable

这应该可以解决问题。

于 2014-03-26T02:11:02.343 回答
0

提到失败原因的异常日志是No route to host

尝试ping 10.6.2.26测试您的网络连接。

于 2012-11-24T13:55:08.807 回答