4

Hadoop を 2 つのノードにインストールしてみました。両方のノードが稼働しています。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を実行し、データノードにはOpenjdkが含まれていますが、パス設定はsun javaに対して行われています。

それでも同じエラーが続きます。

解決策は何でしょうか。

4

2 に答える 2

0

失敗の理由が記載されている例外ログはNo route to hostです。

ping 10.6.2.26ネットワーク接続をテストしてみてください。

于 2012-11-24T13:55:08.807 に答える