温馨提示×

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 namenodeping 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)网络要点:
    • 引入 ZooKeeperJournalNode,在 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 通信的影响。

0