zoukankan      html  css  js  c++  java
  • Hadoop1.2.1异常No route to host

    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,甚至不能正常完成相关操作。

    第三:随便执行一个命令,或者其他操作,总会有这样或者那样的问题出现,不胜其烦。

  • 相关阅读:
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    Swift
    将Ojective-C代码移植转换为Swift代码
    Swift
    房费制——报表(1)
  • 原文地址:https://www.cnblogs.com/fefjay/p/6047324.html
Copyright © 2011-2022 走看看