我有一个hadoop集群,其中有1个主服务器(运行namenode和jobtracker)和2个从服务器(分别运行datanode和tasktracker )。现在每当我执行
hadoop fs -put localfile /user/root/tmp/input
对于4-8 GB的数据,该命令可以完美执行。
但是当我将数据增加到30 to时,其中一个从机就死了。就像在中一样,我得到了一个java.io.noRouteToHost异常,命令不能成功退出。我立即ping了那个从站,发现连以太网连接都断了。所以我必须手动完成
ifup eth0
使主机重新启动。我不能弄清楚这里的问题。我还更改了以下属性
dfs.socket.timeout, for read timeout
dfs.datanode.socket.write.timeout, for write timeout
我将读取超时设置为600000,将写入超时设置为0,以使其为无穷大。请提出任何建议。我已经被困在这个问题上好几天了
发布于 2012-11-02 17:38:41
找到解决方案了。问题出在硬件上。虽然我的NIC卡是千兆位的,但所有节点都插在其中的交换机支持100 my。将开关更改为千兆位,并且工作正常。
发布于 2012-10-31 23:11:38
尝试使用"distCp“复制大数据。
发布于 2014-10-24 05:30:45
我遇到了一个笑脸问题,我用-copyFromLocal
代替了-put,它解决了这个问题。
hadoop fs -copyFromLocal localfile /user/root/tmp/input
https://stackoverflow.com/questions/13152540
复制相似问题