温馨提示×

linux hdfs防火墙怎么配

小樊
45
2026-10-04 13:37:48
栏目: 智能运维

在 Linux 上配置 HDFS 防火墙,通常分两种情况:

  1. 使用 Linux 自带防火墙(iptables / firewalld)
  2. 使用 Hadoop 自身的安全机制(Kerberos / 权限控制)

下面重点讲 Linux 防火墙如何放行 HDFS 相关端口。


一、HDFS 常用端口(必须了解)

服务 默认端口 说明
NameNode 8020 / 9000 HDFS RPC
NameNode Web UI 9870 Hadoop 3.x
SecondaryNameNode 9868 Web UI
DataNode 9864 / 50010 数据传输
DataNode Web UI 9864 Hadoop 3.x
ResourceManager 8088 YARN(如有)

Hadoop 2.x 和 3.x 端口不同,3.x 是 98xx,2.x 是 50xx


二、firewalld(CentOS 7+/RHEL)

1. 查看防火墙状态

systemctl status firewalld

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

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

firewall-cmd --reload

3. 查看已开放端口

firewall-cmd --list-ports

三、iptables(CentOS 6 / 老系统)

iptables -A INPUT -p tcp --dport 8020 -j ACCEPT
iptables -A INPUT -p tcp --dport 9870 -j ACCEPT
iptables -A INPUT -p tcp --dport 9864 -j ACCEPT
iptables -A INPUT -p tcp --dport 9868 -j ACCEPT

service iptables save
service iptables restart

四、集群内网建议配置

✅ 推荐做法

  • 集群节点之间(NameNode ↔ DataNode)内网互通,不限制
  • 只对外网开放 Web UI(9870)
  • 使用安全组 / 内网隔离,而不是精细 iptables

示例(仅允许办公网访问 Web):

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="10.0.0.0/8"
port port="9870" protocol="tcp" accept'

五、HDFS 自身安全(很重要)

防火墙 ≠ 权限安全:

  • 开启 Kerberos
  • 配置 hdfs-site.xml
    <property>
      <name>dfs.permissions.enabled</name>
      <value>true</value>
    </property>
    
  • 控制用户访问权限

六、排查防火墙问题

telnet namenode 8020
curl http://namenode:9870

如果连不上,大概率是防火墙或 bind 地址问题。


如果你告诉我:

  • Hadoop 版本(2.x / 3.x)
  • 操作系统(CentOS / Ubuntu)
  • 是单机还是集群

我可以给你 精准防火墙规则模板。

0 踩