将文件复制到hdfs时出错

bq8i3lrv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(496)

我试着在两个节点上安装hadoop。两个节点都已启动并正在运行。namenode在ubuntu10.10上运行,datanode在fedora13上运行。在将文件从本地文件系统复制到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,但是已经为sunjava设置了路径。
但同样的错误依然存在。
可能的解决办法是什么。

6rqinv9w

6rqinv9w1#

异常日志中提到的失败原因是 No route to host .
尝试 ping 10.6.2.26 测试网络连接。

vyu0f0g1

vyu0f0g12#

那是因为你的防火墙打开了。
尝试

sudo /etc/init.d/iptables stop

如果你使用的是ubuntu,那么

sudo ufw disable

这应该能解决问题。

相关问题