温馨提示×

centos hdfs防火墙如何开

小樊
41
2026-10-15 04:21:13
栏目: 智能运维

在 CentOS 上部署 HDFS(Hadoop) 时,通常需要通过 firewalld 开放 Hadoop 相关端口,否则 NameNode / DataNode / 客户端之间会通信失败。

下面按常见场景给你说明。


一、HDFS 常用端口(默认)

组件 端口 说明
NameNode 9000 / 8020 HDFS RPC
NameNode Web UI 9870 HDFS 页面(Hadoop 3.x)
Secondary NameNode 9868 Web UI
DataNode 9864 DataNode 数据传输
DataNode Web UI 9865 DataNode 页面
ResourceManager 8088 YARN Web
NodeManager 8042 YARN NodeManager

如果你是 Hadoop 2.x,Web UI 通常是:

  • NameNode:50070
  • DataNode:50075

二、CentOS 开启防火墙端口(firewalld)

1️⃣ 查看防火墙状态

systemctl status firewalld

若未启动:

systemctl start firewalld
systemctl enable firewalld

2️⃣ 开放 HDFS 端口(示例:Hadoop 3.x)

firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=9870/tcp
firewall-cmd --permanent --add-port=9864/tcp
firewall-cmd --permanent --add-port=9865/tcp
firewall-cmd --permanent --add-port=9868/tcp

如果是 Hadoop 2.x:

firewall-cmd --permanent --add-port=9000/tcp
firewall-cmd --permanent --add-port=50070/tcp
firewall-cmd --permanent --add-port=50075/tcp

3️⃣ 重新加载防火墙

firewall-cmd --reload

4️⃣ 查看已开放端口

firewall-cmd --list-ports

三、集群环境建议(重要)

✅ 方案 1:仅内网开放(推荐)

如果集群在局域网:

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.0/24"
port protocol="tcp" port="9000" accept'

✅ 方案 2:直接关闭防火墙(测试环境)

⚠️ 不推荐生产

systemctl stop firewalld
systemctl disable firewalld

四、Hadoop 配置中也要注意

hdfs-site.xml 中确保:

<property>
  <name>dfs.namenode.rpc-bind-host</name>
  <value>0.0.0.0</value>
</property>

否则可能只监听 localhost。


五、快速一键脚本(Hadoop 3.x)

for port in 9000 9870 9864 9865 9868; do
  firewall-cmd --permanent --add-port=${port}/tcp
done
firewall-cmd --reload

如果你能告诉我:

  • Hadoop 版本(2.x 还是 3.x)
  • 单机还是集群
  • CentOS 版本(7 / 8 / Stream)

我可以给你更精确的端口和配置方案。

0 踩