情况描述
[2017/10/25 17:16:17] [WARN] org.apache.hadoop.ipc.Client$Connection.handleConnectionFailure(Client.java:913): Failed to connect to server: master/192.168.16.180:9000: try once and fail.
java.net.ConnectException: 拒绝连接
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:531)
at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:495)
at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:681)
at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:777)
at org.apache.hadoop.ipc.Client$Connection.access$3500(Client.java:409)
at org.apache.hadoop.ipc.Client.getConnection(Client.java:1542)
at org.apache.hadoop.ipc.Client.call(Client.java:1373)
解决方案
首先可以用telnet
测试每次修改后连接情况:
1.防火墙开放端口
我在集群中配置的端口是9000
,防火墙是iptables
,开放该端口:
iptables -A INPUT -p tcp NEW --dport 9000 -j ACCEPT
service iptables save 将操作保存到/etc/sysconfig/iptables ,若提示命令不存在,则先安装 yum install iptables-services
service iptables restart
如果是firewall
,操作同理:
# 默认空间
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
2.查看启动日志
如果没有更爱默认设置,hadoop
的启动日志位于$HADOOP_HOME/logs/
,某次启动情况:
这是我直接将本地的hadoop
包直接上传到虚拟机后集群的ID不一致,清除data目录后重新hadoop namenode -format
即可。
这是没有对hdfs
初始化,也是需要hadoop namenode -format
。
3.配置项
所有节点配置时要指定本地的IP,不能填写localhost
或127.0.0.1
(大坑):
最后
提交作业