温馨提示×

centos为何hdfs连不上

小樊
43
2026-09-12 08:05:29
栏目: 智能运维

在 CentOS 上 HDFS 连不上 的原因很多,下面按最常见 → 较少见的顺序给你排查思路,基本照着做就能定位问题。


一、先确认“连不上”的表现

不同现象对应不同原因:

  • Connection refused → 端口/服务没起
  • Connection timed out → 防火墙 / 网络
  • No route to host → IP 或网络问题
  • UnknownHostException → hosts / DNS
  • 能连但卡住 → 安全模式 / 权限

二、最常见原因(90% 在这里)

1️⃣ HDFS 服务根本没启动

jps

应至少看到:

  • NameNode
  • DataNode
  • (HA 还有 JournalNode / ZKFC)

如果没有:

start-dfs.sh

查看日志:

tail -200 $HADOOP_HOME/logs/hadoop-*-namenode-*.log

2️⃣ 防火墙没关(CentOS 重灾区)

CentOS 默认 firewalld 开着

systemctl status firewalld

临时关闭:

systemctl stop firewalld

永久关闭:

systemctl disable firewalld

或放行端口(如 9000 / 8020 / 50070):

firewall-cmd --add-port=9000/tcp --permanent
firewall-cmd --reload

3️⃣ hosts 配置不对(非常常见)

/etc/hosts 必须正确:

vi /etc/hosts

示例:

192.168.1.10  master
192.168.1.11  slave1

⚠️ 不要只写 127.0.0.1 hostname

测试:

ping master

4️⃣ core-site.xml 配置错误

<property>
  <name>fs.defaultFS</name>
  <name>hdfs://master:9000</name>
</property>

常见问题:

  • 主机名写错
  • 端口写错
  • 客户端和集群配置不一致

三、HDFS 自身问题

5️⃣ NameNode 处于安全模式

hdfs dfsadmin -safemode get

如果是 ON:

hdfs dfsadmin -safemode leave

6️⃣ DataNode 没注册

hdfs dfsadmin -report

看不到 DataNode:

  • 检查 dfs.datanode.address
  • 检查 DataNode 日志
  • 检查 clusterID 是否一致

四、网络 & SELinux(CentOS 特有)

7️⃣ SELinux 拦截

getenforce

如果是 Enforcing:

setenforce 0

永久关闭:

vi /etc/selinux/config
SELINUX=disabled

8️⃣ 跨网段 / 云服务器

  • 云服务器要开 安全组
  • 内网 IP vs 公网 IP 配置错

五、快速自检清单 ✅

jps
ping master
telnet master 9000
systemctl status firewalld
getenforce
hdfs dfsadmin -report

六、如果你愿意

你可以直接贴:

  1. 报错信息(完整)
  2. core-site.xml
  3. hdfs-site.xml
  4. jps 输出

我可以精确告诉你哪一步错了,不用瞎猜。

0 踩