首先确定,Namenode的9000端口是否在监听:
- [www.linuxidc.com @master ~]$ netstat -nap | grep 9000
- (Not all processes could be identified, non-owned process info
- will not be shown, you would have to be root to see it all.)
- 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结点:
- [www.linuxidc.com @master ~]$ cat /etc/hosts
- # Do not remove the following line, or various programs
- # that require network functionality will fail.
- 127.0.0.1 localhost localhost
- #::1 localhost6.localdomain6 localhost6
- 192.168.0.180 master master
- 192.168.0.181 slave-01 slave-01
- 192.168.0.182 slave-02 slave-02
- 192.168.0.183 slave-03 slave-03
- [www.linuxidc.com @master ~]$ cat /etc/sysconfig/network
- NETWORKING=yes
- NETWORKING_IPV6=no
- HOSTNAME=master
slave-01结点:
- [shirdrn@slave-01 ~]$ cat /etc/sysconfig/network
- NETWORKING=yes
- NETWORKING_IPV6=no
- HOSTNAME=slave-01
- [shirdrn@slave-01 ~]$ cat /etc/hosts
- # Do not remove the following line, or various programs
- # that require network functionality will fail.
- 127.0.0.1 localhost localhost
- #::1 localhost6.localdomain6 localhost6
- 192.168.0.180 master master
- 192.168.0.181 slave-01 slave-01
- 192.168.0.182 slave-02 slave-02
- 192.168.0.183 slave-03 slave-03
另外两个从结点也没有问题,此处略去。
经过对比验证,都没有问题。
其实,我已经想到可能是防火墙的问题,经过查证,终于找到了有人曾经遇到过该问题,可见文章http://www.linuxidc.com/Linux/2012-05/59749.htm ,需要关闭防火墙,在集群中每台机器上都执行如下命令:
- [www.linuxidc.com @master ~]$ su root
- Password:
- [root@master shirdrn]# service iptables stop
- Flushing firewall rules: [ OK ]
- Setting chains to policy ACCEPT: filter [ OK ]
- Unloading iptables modules: [ OK ]
需要切换到root用户才能执行关闭。
然后,再启动Hadoop集群,就没有问题了。