Hadoop: 主节点9000端口拒绝访问Call From hadoop3/192.168.91.132 to hadoop1:9000 failed on connection exception

注:master: hadoop1 ;
     slaves : hadoop2 ,hadoop3
Call From hadoop3/192.168.91.132 to hadoop1:9000 failed on connection exception。

报错截图

上图为hadoop3使用hadoop fs -ls命令时报错;也有在hadoop1使用hadoop fs -ls时报错的情况。

报错原因
  • 防火墙没有关闭
  • 主节点9000端口没有打开
  • 主节点9000端口打开了,但是不允许远程访问(一般是这个)

报错解决(简易步骤)

  • 关闭hadoop集群
sh HADOOP_HOME/sbin/stop-all.sh
  • 关闭防火墙
service iptables stop
chkconfig iptables off
  • 正确配置core-site.xml

    fs.defaultFS
    hdfs://hadoop1:9000
需保证fs.defaultFS值使用的是 主机名称或者IP地址,不能使用localhost或者127.0.0.1。
  • 关闭NetworkManager服务
service  NetworkManager stop
chkconfig NetworkManager off
  • 正确配置/etc/hosts

  • 重启hadoop集群
sh HADOOP_HOME/sbin/start-all.sh
报错解决(详细说明)
  • 验证所有节点的core-site.xml是否正确配置

    fs.defaultFS
    hdfs://hadoop1:9000
需保证fs.defaultFS值使用的是 主机名称或者IP地址,不能使用localhost或者127.0.0.1。
  • netstat -tlpn 检查主节点9000端口是否打开,且允许远程访问
Hadoop: 主节点9000端口拒绝访问Call From hadoop3/192.168.91.132 to hadoop1:9000 failed on connection exception_第1张图片
一般而言,只要启动了hadoop集群,9000端口就已经开放。以上截图中可以看到,9000端口已经打开,并允许远程当问(可使用telnet ip port 检验)。如果9000端口前的ip地址是 127.0.0.1,说明只能本地访问,从节点使用hadoop命令会报错。
注意,最好验证一下 主节点本身是否能够也能访问该端口,如果不能访问,则在主节点上使用hadoop命令就会报错。

主节点本身可以访问master:9000(此处使用127.0.0.1会被拒绝)

从节点也能够访问master:9000
  • 检查所有节点的/etc/hosts配置是否正确
如果9000端口前面的IP地址是127.0.0.1的话,那可能是/etc/hosts文件中为配置有问题。如果/etc/hosts出现127.0.0.1 localhost.localdomain localhost,那么启动hadoop集群后,使用netstat命令查看端口监听情况的话,会发现9000端口前的IP地址变成了127.0.0.1,而不是master对应的IP地址(此案例为192.168.91.130),从而导致从节点访问master:9000被拒绝,但master本机可以正常使用hadoop命令。

查看namenode的hadoop-root-namenode-hadoop1.out日志,可以看到,启动集群后主节点监听9000的IP地址变成了127.0.0.1.

而查看datanode的hadoop-root-datanode-hadoop3.out日志,可以看到,启动集群后,从节点请求的仍然是192.168.91.130,但是主节点监听的地址已经变成了127.0.0.1:9000。
/etc/hosts正确的配置如下图

/etc/hosts错误的配置如下图
Hadoop: 主节点9000端口拒绝访问Call From hadoop3/192.168.91.132 to hadoop1:9000 failed on connection exception_第2张图片
需要把上图标红的两行去掉就行,如果去掉保存后,重启机器仍出现该两行,只需关闭NetworkManager服务即可,该服务会自动修改hosts文件,添加上图标红的两行。
  • 关闭NetworkManager服务
service  NetworkManager stop
chkconfig NetworkManager off

个人拙见,欢迎讨论,共同进步


你可能感兴趣的:(Hadoop)