0

1 つのマスター (namenode と jobtracker を実行) と 2 つのスレーブ (それぞれで datanode と tasktracker を実行) を持つ Hadoop クラスターがあります。今私が実行するたびに

hadoop fs -put localfile /user/root/tmp/input

4 ~ 8 GB のデータの場合、コマンドは完全に実行されます。

しかし、データを 30GB に増やすと、スレーブの 1 つが死んでしまいます。のように、java.io.noRouteToHost 例外が発生し、コマンドが正常に終了しません。すぐにそのスレーブに ping を実行したところ、イーサネット接続でさえダウンしていることがわかりました。だから私は手動で行う必要があります

ifup eth0

そのスレーブで、ホストを再び起動します。ここで問題を理解できません。次のプロパティも変更しました

dfs.socket.timeout,  for read timeout
dfs.datanode.socket.write.timeout, for write timeout

読み取りタイムアウトを 600000 に増やし、書き込みタイムアウトを 0 に変更して無限にしました。提案をお願いします。私はこれに数日間立ち往生しています

4

3 に答える 3

0

「distCp」を使用して大きなデータをコピーしてみてください。

于 2012-10-31T15:11:37.823 に答える
0

解決策を得ました。問題はハードウェアにありました。私の NIC カードはギガビットでしたが、すべてのノードが接続されたスイッチは 100MBps をサポートしていました。スイッチをギガビットに変更し、完全に正常に動作しました。

于 2012-11-02T09:38:41.263 に答える