您的位置:首页 > 运维架构

Hadoop1.2.1异常No route to host

2016-11-09 16:01 447 查看
Hadoop1.2.1异常Bad connect ack with firstBadLink (No route to host )

0.说明

Hadoop集群之前运行正常,增加了新节点之后,需要执行负载均衡等相关操作,执行过程当中出现问题。

1.运行异常

查看master上面的日志信息,发现:

[INFO] Exception in createBlockOutputStream java.io.IOException: Bad connect ack with firstBadLink xxx.xxx.xxx.xxx:50010
[INFO] Abandoning block blk_6251991629364444942_18501788

也有以下关键信息:

java.net.NoRouteToHostException: No route to host
ERROR org.apache.hadoop.dfs.DataNode:
xxx.xxx.xxx.xxx:50010:DataXceiver: java.net.NoRouteToHostException: No
route to host  #没有到主机的路由

最后查看节点报告信息负载均衡也没有实现,数据也没有同步到新节点上。

2.解决办法

根据报错信息,我们都可以发现就是网络连接的问题,master和新节点之间的网络通信断了,所以才会没找到主机路由。办法如下:

1)从master主机ping其它主机,如果ping不通,原因可能是namenode节点的/etc/hosts配置错误。

2)从slave主机ping master主机名,如果ping不通,原因可能是datenode节点的/etc/hosts配置的配置错误。

3)查看master主机的9000(具体根据core-site.xml中的fs.default.name节点配置)端口,是否打开。

4)root用户关闭防火墙。这是最容易出现的问题。用此命令service iptables stop关闭后,一切正常,集群正常使用。关掉所有Datanode上的iptables:

service iptables stop

关闭防火墙个人认为不值得推荐,但是每次出现网络问题关闭它都很有效。应该要设定相关的策略,允许开放Hadoop的特定端口。网上有个帖子,谈到了这个问题http://blog.chinaunix.net/uid-20424888-id-96029.html。

3.个人体验

如果不关闭防火墙(或者没有设置相关过滤规则),个人体验有以下几种情况出现:

第一:hdfs的web管理页面,打不开该节点的文件浏览页面,如打不开http://slave2:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/。

第二:在删除和增加节点的时候,数据迁移处理时间长,而且会有很多warning,甚至不能正常完成相关操作。

第三:随便执行一个命令,或者其他操作,总会有这样或者那样的问题出现,不胜其烦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: