CentOS HDFS配置中网络设置
小樊
40
2025-12-13 21:10:17
CentOS 上部署 HDFS 的网络设置要点
一 基础网络与主机解析
- 配置静态 IP(以网卡 ens33 为例):编辑 /etc/sysconfig/network-scripts/ifcfg-ens33,设置 BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1、ONBOOT=yes,保存后执行 systemctl restart network。示例:
- DEVICE=ens33、BOOTPROTO=static、ONBOOT=yes
- IPADDR=192.168.1.100、NETMASK=255.255.255.0、GATEWAY=192.168.1.1
- DNS1=8.8.8.8、DNS2=114.114.114.114
- 设置主机名:使用 hostnamectl set-hostname hadoop1(按节点分别设置唯一主机名)。
- 统一主机解析:在 /etc/hosts 添加所有节点的 IP 主机名 映射,确保节点间可用主机名互通。示例:
- 192.168.1.10 namenode
- 192.168.1.11 datanode1
- 192.168.1.12 datanode2
- 连通性验证:使用 ping namenode、ping datanode1 测试解析与链路;必要时检查默认网关与 DNS 可达性。
二 Hadoop 网络相关配置
- 核心地址(core-site.xml):设置默认文件系统地址,推荐使用主机名与 RPC 端口 8020(Hadoop 2.x/3.x 常用)。示例:
- fs.defaultFShdfs://namenode:8020
- 名称与数据目录(hdfs-site.xml):按节点规划本地存储目录,并设置副本数(测试环境可用 1,生产建议 3)。示例:
- dfs.replication3
- dfs.namenode.name.dir/opt/data/hdfs/namenode
- dfs.datanode.data.dir/opt/data/hdfs/datanode
- Web 管理界面(hdfs-site.xml):开放 NameNode HTTP 端口(常见为 50070)。示例:
- dfs.namenode.http-addressnamenode:50070
- 环境变量:在 /etc/profile.d/hadoop.sh 或 /etc/profile 中配置 HADOOP_HOME、PATH,执行 source 使其生效。
三 防火墙与端口放行
- 使用 firewalld 放行 HDFS 端口(示例以 8020、50070、50010、50020 为例):
- sudo firewall-cmd --permanent --zone=public --add-port=8020/tcp
- sudo firewall-cmd --permanent --zone=public --add-port=50070/tcp
- sudo firewall-cmd --permanent --zone=public --add-port=50010/tcp
- sudo firewall-cmd --permanent --zone=public --add-port=50020/tcp
- sudo firewall-cmd --reload
- 端口用途速览:
- 8020:HDFS RPC(fs.defaultFS 指向的端口)
- 50070:NameNode Web UI
- 50010:DataNode 数据传输端口
- 50020:DataNode IPC 端口
- 安全建议:生产环境不建议直接关闭防火墙,应仅放行必要端口与来源网段。
四 启动与验证
- 首次部署需格式化 NameNode:执行 hdfs namenode -format(仅首次)。
- 启动 HDFS:在 NameNode 执行 start-dfs.sh;集群多节点时先同步 $HADOOP_HOME/etc/hadoop 配置到各 DataNode。
- 进程与连通性检查:
- 使用 jps 检查进程:NameNode、DataNode 是否正常
- 访问 http://namenode:50070 查看集群状态与节点列表
- 运行 hdfs dfs -ls / 验证 HDFS 可用
- 常见排障要点:
- 无法解析主机名:核对 /etc/hosts 与 DNS
- 端口不通:核对 firewalld 规则与监听地址(netstat/ss)
- DataNode 未注册:核对 dfs.datanode.data.dir 权限与磁盘空间、网络连通性
五 高可用与网络优化建议
- 高可用(HA)网络要点:
- 引入 ZooKeeper 与 JournalNode,在 hdfs-site.xml 配置 dfs.nameservices、dfs.ha.namenodes、dfs.namenode.rpc-address、dfs.namenode.http-address、dfs.shared.edits.dir 等关键项,确保 RPC 与 HTTP 地址可达、JournalNode 端口(如 8485)互通。
- 性能与稳定性优化:
- 内核与系统:提升文件描述符与 TCP 参数(如 fs.file-max、net.ipv4.tcp_tw_reuse、net.ipv4.tcp_fin_timeout),减少短连接占用与 TIME_WAIT 堆积
- HDFS 参数:结合业务调整数据本地性等待与并行传输相关参数,避免网络成为瓶颈
- 网络与架构:规划冗余链路与设备,合理设置 心跳与数据同步 策略,降低拥塞与抖动对 NameNode–DataNode 通信的影响。