HDFS在CentOS上的网络配置技巧
小樊
41
2026-01-04 10:11:34
一 基础网络与主机解析
- 使用静态IP保证拓扑稳定:编辑接口文件(如**/etc/sysconfig/network-scripts/ifcfg-ens33**),将BOOTPROTO=static,并正确设置IPADDR、NETMASK、GATEWAY、DNS1/2、ONBOOT=yes;保存后执行systemctl restart network。
- 规范主机名与解析:用hostnamectl set-hostname 设置唯一主机名;在/etc/hosts中写入所有节点的IP-主机名映射,避免依赖不可控DNS。
- 统一时间同步:全集群启用NTP,确保NameNode/DataNode时钟一致,避免安全令牌与RPC异常。
- 打通SSH免密:在各节点生成密钥并分发公钥,便于集群启停与脚本化运维。
- 建议将Hadoop目录加入环境变量(如**/etc/profile中设置HADOOP_HOME与PATH**),减少手工路径错误。
二 防火墙与端口放行
- 若启用防火墙,需放行HDFS常用端口(示例以firewalld为例):
- 8020/tcp(NameNode RPC,推荐)或旧版9000/tcp
- 50070/tcp(NameNode HTTP)
- 50010/tcp(DataNode数据传输)
- 50020/tcp(DataNode IPC)
- 50075/tcp(DataNode HTTP)
- 50090/tcp(SecondaryNameNode HTTP)
命令示例:firewall-cmd --permanent --zone=public --add-port=8020/tcp;firewall-cmd --reload。
- 若处于受控网络或测试环境,可临时停止并禁用firewalld,上线前务必恢复并精细化放行。
三 Hadoop网络关键配置
- core-site.xml:设置默认文件系统URI,优先使用fs.defaultFS=hdfs://<nameservice_or_namenode>:8020;如使用HA,使用逻辑名称服务而非裸IP。
- hdfs-site.xml:
- 副本数:dfs.replication=3(生产常用,三副本兼顾可靠性与容量)。
- 目录权限:dfs.datanode.data.dir.perm=700(仅DataNode用户可读写)。
- NameNode HTTP:dfs.namenode.http-address=0.0.0.0:50070(如需外网访问,绑定到非回环地址)。
- 高可用(HA)要点:
- 定义dfs.nameservices,为每个NameNode配置dfs.ha.namenodes.与dfs.namenode.rpc-address/dfs.namenode.http-address;
- 配置dfs.client.failover.proxy.provider.(如ConfiguredFailoverProxyProvider);
- 使用JournalNode时开放8485/tcp并配置dfs.namenode.shared.edits.dir=qjournal://…。
- 客户端多集群/跨集群访问:在dfs.nameservices中同时声明多个nameservice,并用dfs.internal.nameservices标注本集群;为远端集群补充其HA地址与故障转移代理,便于distcp等跨集群作业无需改IP。
四 双网卡与链路冗余
- 采用Bonding提升可靠性:创建bond0(如mode=1 主备,miimon=100ms),将eth0/eth1设为SLAVE;必要时在**/etc/modprobe.conf**中加载bonding模块。
- 选择模式建议:带宽未达单卡上限时优先mode=1(主备,复杂度低、切换快);交换机与网卡支持802.3ad时可用mode=4(链路聚合,提升吞吐)。
- 注意:Bonding属于系统层面网络能力,HDFS配置仍应使用逻辑主机名或VIP,避免直接绑定到某块物理网卡。
五 验证与排障清单
- 基础连通:
- 节点间用**ping <主机名/IP>**验证二层/三层可达;
- 用**ss -lntp | grep -E ‘8020|50070|50010|50075|50090’**确认端口监听;
- 用firewall-cmd --list-ports核对放行策略。
- HDFS健康:
- 执行hdfs dfsadmin -report查看Live/Decommissioning节点与容量;
- 访问http://:50070核对NameNode与DataNode状态;
- 首次部署或重大变更后,按需执行hdfs namenode -format(仅一次,谨慎操作)。
- 常见症状速查:
- 无法写入/读取:检查副本数、磁盘权限(700)、DataNode目录挂载与防火墙;
- 集群分裂/脑裂:核对NTP、主机名解析一致性、SSH免密与ZooKeeper/JournalNode健康;
- 跨机房/跨集群作业失败:核对nameservice配置、failover代理与RPC/HTTP端口可达性。