温馨提示×

HDFS网络配置在CentOS中如何操作

小樊
34
2025-12-23 17:44:35
栏目: 智能运维

在 CentOS 上配置 HDFS 网络的关键步骤


一 基础网络与主机解析

  • 配置静态 IP(以网卡 ens33 为例):编辑文件 /etc/sysconfig/network-scripts/ifcfg-ens33,设置 BOOTPROTO=staticIPADDRNETMASKGATEWAYDNS1,并将 ONBOOT=yes;保存后执行 systemctl restart network 使配置生效。
  • 设置主机名:使用 hostnamectl set-hostname <主机名> 为各节点设置唯一主机名(如 namenodedatanode1)。
  • 主机名解析:在所有节点的 /etc/hosts 中添加各节点 IP 主机名 映射,确保节点间可用主机名互通。
  • 连通性验证:使用 ping <主机名/IP> 测试网络与 DNS 解析是否正常。

二 防火墙与内核网络参数

  • 防火墙放行 HDFS 端口(示例):
    • firewall-cmd --permanent --zone=public --add-port=8020/tcp(NameNode RPC)
    • firewall-cmd --permanent --zone=public --add-port=50070/tcp(NameNode HTTP)
    • firewall-cmd --permanent --zone=public --add-port=50010/tcp(DataNode 数据传输)
    • firewall-cmd --permanent --zone=public --add-port=50020/tcp(DataNode IPC)
    • 执行 firewall-cmd --reload 使规则生效。
  • 内核与系统限制(可选优化):
    • 文件句柄:/etc/security/limits.conf 增加“* soft nofile 65536* hard nofile 65536”。
    • TCP 参数:/etc/sysctl.conf 可设置如 net.ipv4.tcp_tw_reuse=1net.ipv4.tcp_fin_timeout=30net.core.somaxconn=32768 等,执行 sysctl -p 生效。
  • 说明:生产环境不建议直接关闭防火墙/SELinux,应精细化放通端口与策略。

三 Hadoop 网络相关配置

  • 配置 core-site.xml(示例):
    • 设置默认文件系统:fs.defaultFS=hdfs://namenode:8020(或 hdfs://namenode:9000,与你的 Hadoop 版本和端口规划一致)。
  • 配置 hdfs-site.xml(示例):
    • 副本数:dfs.replication=3(测试环境可设为 1)。
    • 目录:dfs.namenode.name.dirdfs.datanode.data.dir 指定本地存储路径。
    • Web 地址:dfs.namenode.http-address=namenode:50070
  • 环境变量与分发:在 /etc/profile.d/hadoop.sh 中设置 HADOOP_HOMEPATH,执行 source /etc/profile.d/hadoop.sh;将 $HADOOP_HOME/etc/hadoop 配置目录同步到所有节点(如 scp -r)。

四 启动与验证

  • 首次部署需格式化 NameNode:hdfs namenode -format
  • 启动 HDFS:在 NameNode 执行 start-dfs.sh;或各节点按需执行 start-datanode.sh
  • 进程与连通性检查:
    • 进程:jps 应能看到 NameNode/DataNode 等进程。
    • Web:http://namenode:50070 查看 HDFS Web UI。
    • 集群报告:hdfs dfsadmin -report 查看节点与容量。
    • 基本操作:hdfs dfs -ls / 验证客户端连通与权限。

五 高可用与端口规划

  • HA 关键配置(示例):
    • dfs.nameservices=myclusterdfs.ha.namenodes.mycluster=nn1,nn2
    • dfs.namenode.rpc-address.mycluster.nn1=node1:8020dfs.namenode.rpc-address.mycluster.nn2=node2:8020
    • dfs.namenode.http-address.mycluster.nn1=node1:50070dfs.namenode.http-address.mycluster.nn2=node2:50070
    • dfs.namenode.shared.edits.dir=qjournal://node1:8485;node2:8485;node3:8485/mycluster
    • dfs.journalnode.edits.dir 指定 JournalNode 编辑目录;
    • dfs.client.failover.proxy.provider.mycluster=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
  • 部署要点:准备 ZooKeeper 集群并启动;按顺序启动 JournalNode,在 nn1 上执行 hdfs namenode -format,按 HA 流程引导备用 NameNode(如使用 -bootstrapStandby),最后启动集群并测试故障转移。
  • 常用端口速览:
    • 8020 NameNode RPC;50070 NameNode HTTP;50010 DataNode 数据传输;50020 DataNode IPC;8485 JournalNode。

0