温馨提示×

Ubuntu Hadoop 网络如何配置

小樊
43
2025-12-16 19:59:43
栏目: 智能运维

Ubuntu Hadoop 网络配置实操指南

一 规划与准备

  • 规划节点与IP:建议为每台机器设置固定内网IP,例如 master 192.168.5.11slave1 192.168.5.12slave2 192.168.5.13,并在所有节点统一 /etc/hosts 映射,避免依赖 DNS。
  • 统一主机名:每台机器设置唯一主机名(如 master、slave1、slave2),便于后续服务定位。
  • 虚拟机网络模式:优先使用 桥接NAT 并确保宿主机与虚拟网络在同一网段;NAT 模式需在虚拟化软件中记录 子网IP、子网掩码、网关 以便配置静态IP。
  • 基础连通性:准备就绪后,确保节点间可互相 ping 通,并具备外网解析能力(便于安装软件)。

二 设置静态IP与主机名解析

  • Ubuntu 18.04/20.04/22.04 通常使用 Netplan(配置文件位于 /etc/netplan/*.yaml)。示例(网卡名可能为 ens33/eth0,请按实际调整):

    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: no
          addresses: [192.168.5.11/24]
          routes:
            - to: default
              via: 192.168.5.2
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    

    应用配置:sudo netplan apply。如需使用 NetworkManager 渲染器,可将 renderer 改为 NetworkManager 并用 nmcli 管理。

  • 旧版 Ubuntu(使用 /etc/network/interfaces)示例:

    auto ens33
    iface ens33 inet static
      address 192.168.5.11
      netmask 255.255.255.0
      gateway 192.168.5.2
      dns-nameservers 8.8.8.8 8.8.4.4
    

    使配置生效:sudo systemctl restart networking(或重启系统)。

  • 主机名与解析:

    • 设置主机名:sudo hostnamectl set-hostname master(各节点分别设置 master/slave1/slave2)。
    • 统一 hosts(所有节点一致):
      192.168.5.11 master
      192.168.5.12 slave1
      192.168.5.13 slave2
      
    • 如使用 NAT,建议在宿主机(如 Windows C:\Windows\System32\drivers\etc\hosts)也加入相同映射,便于宿主机访问集群服务。

三 打通节点间 SSH 免密登录

  • 安装 SSH 服务:sudo apt-get install -y openssh-server
  • 生成密钥:ssh-keygen -t rsa -b 2048(一路回车)
  • 分发公钥到所有节点(含本机):ssh-copy-id user@masterssh-copy-id user@slave1ssh-copy-id user@slave2
  • 验证:ssh masterssh slave1 无需密码即可登录。

四 Hadoop 关键网络参数配置

  • 建议用主机名而非 localhost/127.0.0.1 或裸 IP,便于节点迁移与扩展。
  • 核心配置($HADOOP_HOME/etc/hadoop):
    • core-site.xml
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:9000</value>
        </property>
      </configuration>
      
    • hdfs-site.xml(示例副本数为 3
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>3</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>file:///opt/hadoop/dfs/name</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>file:///opt/hadoop/dfs/data</value>
        </property>
      </configuration>
      
    • mapred-site.xml
      <configuration>
        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
        </property>
      </configuration>
      
    • yarn-site.xml
      <configuration>
        <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>master</value>
        </property>
        <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
        </property>
      </configuration>
      
  • 环境变量(示例):
    echo 'export HADOOP_HOME=/opt/hadoop' >> ~/.bashrc
    echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
    source ~/.bashrc
    
  • 初始化与启动:
    • 格式化 NameNode(仅首次):hdfs namenode -format
    • 启动:start-dfs.shstart-yarn.sh

五 验证与常见问题处理

  • 连通性验证:
    • 节点互 ping:ping -c 3 slave1ping -c 3 master
    • 端口连通:nc -vz master 9000nc -vz master 8088(HDFS/YARN Web UI)
    • 服务可达:hdfs dfs -ls /yarn node -list
  • 常见问题:
    • 主机名解析错误:确保所有节点 /etc/hosts 一致,且不使用 127.0.0.1 映射实际主机名。
    • 防火墙/安全组:测试环境可临时关闭防火墙(如 sudo ufw disable),生产环境请放行 9000/8088/50070/50075 等端口。
    • 配置未生效:Netplan 修改后执行 sudo netplan apply;旧版网络配置修改后重启网络或系统。
    • SSH 仍要密码:确认公钥已追加到目标节点 ~/.ssh/authorized_keys,且目录权限为 700、文件为 600

0