在 Linux 上 Hadoop 连接失败 是一个非常常见的问题,原因很多。下面我按最常见原因 → 排查方法 → 解决思路给你系统梳理一下,你可以对照看是哪一种。
Hadoop 严重依赖 hostname 解析。
表现:
Connection refusedUnknownHostException检查:
hostname
hostname -f
cat /etc/hosts
正确示例(多节点):
192.168.1.10 master
192.168.1.11 slave1
192.168.1.12 slave2
✅ 每台机器都要有 对方的主机名解析
Hadoop 启动依赖 SSH。
表现:
ssh: connect to host slave1 port 22: Connection refused检查:
ssh master
ssh slave1
配置免密:
ssh-keygen -t rsa
ssh-copy-id master
ssh-copy-id slave1
Hadoop 使用大量端口(如 8020、9000、50070)。
检查防火墙:
systemctl status firewalld
iptables -L
临时关闭测试:
systemctl stop firewalld
✅ 生产环境应 开放端口 而不是关防火墙
常见错误:
<value>hdfs://localhost:9000</value>
但集群用的是 master
✅ 正确示例:
<value>hdfs://master:9000</value>
检查:
cat $HADOOP_HOME/etc/hadoop/core-site.xml
表现:
Retrying connect to serverCall From xxx to master:9000 failed查看进程:
jps
应有:
启动:
start-dfs.sh
start-yarn.sh
表现:
Incompatible clusterIDs✅ 解决:
stop-all.sh
rm -rf /tmp/hadoop-*
hdfs namenode -format
start-all.sh
⚠️ 生产环境不要随便格式化
检查:
java -version
hadoop version
✅ 推荐:
jps
netstat -tnlp | grep java
ping master
ssh master
cat logs/hadoop-*.log | tail -50
你可以直接告诉我:
core-site.xml 和 hdfs-site.xmljps 输出结果我可以直接帮你 定位是哪一步出错并给出具体修改方案。