在 CentOS 上 HDFS 连不上 的原因很多,下面按最常见 → 较少见的顺序给你排查思路,基本照着做就能定位问题。
不同现象对应不同原因:
Connection refused → 端口/服务没起Connection timed out → 防火墙 / 网络No route to host → IP 或网络问题UnknownHostException → hosts / DNSjps
应至少看到:
如果没有:
start-dfs.sh
查看日志:
tail -200 $HADOOP_HOME/logs/hadoop-*-namenode-*.log
CentOS 默认 firewalld 开着
systemctl status firewalld
临时关闭:
systemctl stop firewalld
永久关闭:
systemctl disable firewalld
或放行端口(如 9000 / 8020 / 50070):
firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload
/etc/hosts 必须正确:
vi /etc/hosts
示例:
192.168.1.10 master
192.168.1.11 slave1
⚠️ 不要只写 127.0.0.1 hostname
测试:
ping master
<property>
<name>fs.defaultFS</name>
<name>hdfs://master:9000</name>
</property>
常见问题:
hdfs dfsadmin -safemode get
如果是 ON:
hdfs dfsadmin -safemode leave
hdfs dfsadmin -report
看不到 DataNode:
dfs.datanode.addressclusterID 是否一致getenforce
如果是 Enforcing:
setenforce 0
永久关闭:
vi /etc/selinux/config
SELINUX=disabled
jps
ping master
telnet master 9000
systemctl status firewalld
getenforce
hdfs dfsadmin -report
你可以直接贴:
core-site.xmlhdfs-site.xmljps 输出我可以精确告诉你哪一步错了,不用瞎猜。