温馨提示×

Hadoop在Linux中如何配置网络

小樊
37
2026-01-03 04:57:58
栏目: 智能运维

Linux 上 Hadoop 网络配置实操指南

一 基础网络与主机名解析

  • 设置主机名(每台机器唯一):执行命令:hostnamectl set-hostname master(示例将本机设为 master)。
  • 配置静态 IP(示例以 CentOS/RHEL 网卡 eth0 为例):编辑 /etc/sysconfig/network-scripts/ifcfg-eth0,内容示例:
    TYPE=Ethernet
    BOOTPROTO=static
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    ONBOOT=yes
    应用:执行 systemctl restart network
  • 配置 DNS:编辑 /etc/resolv.conf,添加:
    nameserver 8.8.8.8
    nameserver 8.8.4.4
  • 统一主机名解析:在所有节点编辑 /etc/hosts,加入所有节点的 IP 与主机名映射,例如:
    192.168.1.100 master
    192.168.1.101 slave1
    192.168.1.102 slave2
  • 连通性自检:
    • 节点互 ping:ping master、ping slave1
    • 解析自检:nslookup master、getent hosts master
    • 端口连通(Hadoop 常用端口示例):nc -vz master 9000(HDFS RPC)、nc -vz master 8088(YARN Web)
      说明:以上主机名、静态 IP、DNS 与 /etc/hosts 的做法为 Hadoop 集群通信的基础配置。

二 安全策略与 SSH 免密登录

  • 防火墙(测试环境可临时关闭,生产环境请按需放通端口):
    • firewalld:执行 systemctl stop firewalld && systemctl disable firewalld
    • 或仅放通必要端口(示例):firewall-cmd --permanent --add-port=9000/tcp --add-port=8088/tcp && firewall-cmd --reload
  • SELinux(开发环境可放宽):执行 setenforce 0(永久需修改 /etc/selinux/config 的 SELINUX=permissive)。
  • SSH 免密登录(建议在所有节点均生成密钥,并将公钥分发到集群所有节点):
    • 生成密钥:ssh-keygen -t rsa(一路回车)
    • 分发公钥:ssh-copy-id master、ssh-copy-id slave1、ssh-copy-id slave2
    • 权限安全:chmod 700 ~/.ssh;chmod 600 ~/.ssh/authorized_keys
    • 验证:ssh master、ssh slave1 无需口令即能登录
      说明:关闭防火墙/SELinux 与配置 SSH 免密是节点间自动化启动与通信的前提。

三 Hadoop 关键网络参数配置

  • 环境变量(~/.bashrc 或 /etc/profile):
    export JAVA_HOME=/usr/java/latest
    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    使生效:source ~/.bashrc
  • 核心配置文件($HADOOP_HOME/etc/hadoop/):
    • core-site.xml:


      fs.defaultFS
      hdfs://master:9000

    • hdfs-site.xml:


      dfs.replication
      3


      dfs.namenode.name.dir
      /data/hadoop/dfs/name


      dfs.datanode.data.dir
      /data/hadoop/dfs/data

    • mapred-site.xml(如启用 YARN):


      mapreduce.framework.name
      yarn

    • yarn-site.xml:


      yarn.resourcemanager.hostname
      master


      yarn.nodemanager.aux-services
      mapreduce_shuffle

    • workers(旧版为 slaves):列出所有 DataNode/NodeManager 主机名,每行一个,例如:
      master
      slave1
      slave2
      说明:以上关键项使用主机名(而非 localhost),端口 9000 为 HDFS RPC 常用端口,副本数 3 为常见生产值。

四 启动与验证

  • 初始化 HDFS:在 NameNode 执行 hdfs namenode -format(仅首次)。
  • 启动集群:
    • 启动 HDFS:start-dfs.sh
    • 启动 YARN:start-yarn.sh
  • 进程自检:执行 jps,应看到 NameNode/DataNode/ResourceManager/NodeManager 等关键进程。
  • Web 与连通性验证:
    • HDFS NameNode:http://master:50070
    • YARN ResourceManager:http://master:8088
    • 命令行:hdfs dfsadmin -report(查看集群节点与存储概况)
      说明:上述端口与进程用于快速判断网络与服务是否正常。

五 常见问题与排查清单

  • 主机名解析错误:/etc/hosts 与命令提示的主机名不一致,或 Windows 客户端未加映射(如需在 Windows 访问,编辑 C:\Windows\System32\drivers\etc\hosts 添加与 Linux 一致的映射)。
  • 端口不通:firewalld/SELinux 未放行(或云安全组未放通),用 nc/telnet 检测 9000/8088 等端口连通性。
  • SSH 仍需密码:检查 ~/.ssh 权限是否为 700/600,以及公钥是否已正确分发到所有节点的 authorized_keys
  • 副本数不足:单节点或仅有 1 个 DataNode 时,将 dfs.replication 设为 1,避免写入报错。
  • 配置未生效:确认 JAVA_HOME/HADOOP_HOME 已导出,Hadoop 配置文件位于 $HADOOP_HOME/etc/hadoop/,并使用 source ~/.bashrc 重载环境。

0