CentOS下配置Hadoop集群:java.net.NoRouteToHostException: No route to host问题的解决

首先确定,Namenode的9000端口是否在监听:

  1. [www.linuxidc.com @master ~]$ netstat -nap | grep 9000  
  2. (Not all processes could be identified, non-owned process info
  1.  will not be shown, you would have to be root to see it all.)  
  2. tcp        0      0 192.168.0.180:9000          0.0.0.0:*                   LISTEN      5374/java   

可见,Namenode启动没有问题。

在网上查了一下,有人说( http://www.linuxidc.com/Linux/2012-05/59748.htm )是,hostname和hosts中配置的虚拟域名不一致会导致出现No route to host异常,经过验证:

master结点:

  1. [www.linuxidc.com @master ~]$ cat /etc/hosts  
  2. # Do not remove the following line, or various programs  
  3. # that require network functionality will fail.  
  4. 127.0.0.1               localhost localhost  
  5. #::1            localhost6.localdomain6 localhost6  
  6.   
  7. 192.168.0.180   master master  
  8. 192.168.0.181   slave-01        slave-01  
  9. 192.168.0.182   slave-02        slave-02  
  10. 192.168.0.183   slave-03        slave-03  
  11. [www.linuxidc.com @master ~]$ cat /etc/sysconfig/network  
  12. NETWORKING=yes  
  13. NETWORKING_IPV6=no  
  14. HOSTNAME=master  

slave-01结点:

  1. [shirdrn@slave-01 ~]$ cat /etc/sysconfig/network  
  2. NETWORKING=yes  
  3. NETWORKING_IPV6=no  
  4. HOSTNAME=slave-01  
  5. [shirdrn@slave-01 ~]$ cat /etc/hosts  
  6. # Do not remove the following line, or various programs  
  7. # that require network functionality will fail.  
  8. 127.0.0.1               localhost localhost  
  9. #::1            localhost6.localdomain6 localhost6  
  10.   
  11. 192.168.0.180   master  master  
  12. 192.168.0.181   slave-01        slave-01  
  13. 192.168.0.182   slave-02        slave-02  
  14. 192.168.0.183   slave-03        slave-03  

另外两个从结点也没有问题,此处略去。

经过对比验证,都没有问题。

其实,我已经想到可能是防火墙的问题,经过查证,终于找到了有人曾经遇到过该问题,可见文章http://www.linuxidc.com/Linux/2012-05/59749.htm ,需要关闭防火墙,在集群中每台机器上都执行如下命令:

  1. [www.linuxidc.com @master ~]$ su root  
  2. Password:   
  3. [root@master shirdrn]# service iptables stop  
  4. Flushing firewall rules: [  OK  ]  
  5. Setting chains to policy ACCEPT: filter [  OK  ]  
  6. Unloading iptables modules: [  OK  ]  

需要切换到root用户才能执行关闭。

然后,再启动Hadoop集群,就没有问题了。

猜你喜欢

转载自will-akazam.iteye.com/blog/2020750
今日推荐