Datanode,tasktracker在执行hadoop fs -put命令时死机

时间:2012-10-31 06:40:20

标签: hadoop

我有一个带有1个master(运行namenode和jobtracker)和2个slave(每个都运行datanode和tasktracker)的hadoop集群。现在每当我执行

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

对于4-8 GB的数据,命令执行完美。

但是当我将数据增加到30GB时,其中一个奴隶就死了。因为在我得到java.io.noRouteToHost异常并且命令退出失败。我立刻ping了那个奴隶,发现即使以太网连接都断了。所以我必须手动做

ifup eth0

在那个奴隶上再次启动主机。 我无法在这里找出问题所在。我还更改了以下属性

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

我将读取超时增加到600000并且写入超时我改为0以使其无限。请提出任何建议。我已经坚持了几天

3 个答案:

答案 0 :(得分:0)

尝试使用" distCp"复制大数据。

答案 1 :(得分:0)

得到了解决方案。问题出在硬件上。虽然我的NIC卡是千兆位,但所有节点都插入的交换机支持100MBps。将交换机更改为千兆位,工作得非常好。

答案 2 :(得分:-1)

我遇到了类似的问题,我使用-copyFromLocal代替-put,它解决了问题。

ħadoop fs -copyFromLocal localfile /user/root/tmp/input

相关问题