温馨提示×

Ubuntu Hadoop网络配置有哪些要点

小樊
52
2025-10-12 10:58:11
栏目: 智能运维

Ubuntu环境下Hadoop网络配置的关键要点

1. 网络接口与IP配置

为所有Hadoop节点(NameNode、DataNode、ResourceManager、NodeManager等)配置静态IP地址(避免DHCP动态分配导致IP变动),确保节点间通信稳定。可通过/etc/netplan/*.yaml(Ubuntu 18.04及以上)或/etc/network/interfaces(旧版本)文件设置,例如:

network:
  version: 2
  ethernets:
    ens33:  # 网络接口名称(通过`ip a`命令查看)
      addresses: [192.168.1.100/24]  # 静态IP地址及子网掩码
      gateway4: 192.168.1.1          # 网关地址
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4] # DNS服务器

应用配置:sudo netplan apply

2. 主机名与hosts文件映射

为每个节点设置唯一主机名(如namenodedatanode1),并通过/etc/hosts文件将IP地址与主机名关联,避免依赖DNS解析(减少网络延迟)。例如:

192.168.1.100 namenode
192.168.1.101 datanode1
192.168.1.102 datanode2

修改后需同步所有节点的/etc/hosts文件。

3. SSH无密码登录配置

Hadoop集群中,NameNode需要通过SSH无密码访问所有DataNode,ResourceManager需要访问所有NodeManager。配置步骤:

  • 生成SSH密钥对:ssh-keygen -t rsa(默认保存到~/.ssh/id_rsa);
  • 复制公钥到目标节点:ssh-copy-id user@datanode1user为目标节点用户名);
  • 测试无密码登录:ssh user@datanode1(无需输入密码)。

4. Hadoop核心配置文件调整

修改Hadoop安装目录下(如$HADOOP_HOME/etc/hadoop)的关键配置文件,确保网络通信参数正确:

  • core-site.xml:设置HDFS默认文件系统和IPC端口,例如:
    <property>
      <name>fs.defaultFS</name>
      <value>hdfs://namenode:9000</value> <!-- NameNode的RPC地址 -->
    </property>
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/path/to/hadoop-tmp</value> <!-- 临时文件目录 -->
    </property>
    
  • hdfs-site.xml:配置NameNode/DataNode地址、副本数及主机名检查,例如:
    <property>
      <name>dfs.replication</name>
      <value>3</value> <!-- 数据副本数(根据集群规模调整) -->
    </property>
    <property>
      <name>dfs.namenode.rpc-address</name>
      <value>namenode:9000</value> <!-- NameNode的RPC地址 -->
    </property>
    <property>
      <name>dfs.datanode.address</name>
      <value>0.0.0.0:50010</value> <!-- DataNode的数据传输端口 -->
    </property>
    <property>
      <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
      <value>false</value> <!-- 关闭IP与主机名匹配检查(避免DNS问题) -->
    </property>
    
  • yarn-site.xml:设置ResourceManager地址和Shuffle服务,例如:
    <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>resourcemanager</value> <!-- ResourceManager的主机名 -->
    </property>
    <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value> <!-- MapReduce Shuffle服务 -->
    </property>
    <property>
      <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
      <value>org.apache.hadoop.mapred.ShuffleHandler</value> <!-- Shuffle处理器 -->
    </property>
    
  • mapred-site.xml:指定MapReduce框架为YARN,例如:
    <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>
    

配置完成后需同步所有节点的配置文件。

5. 防火墙与端口开放

确保防火墙允许Hadoop所需的端口通信(避免网络阻断):

  • 使用ufw(Ubuntu防火墙)开放端口,例如:
    sudo ufw allow 9000/tcp   # NameNode RPC端口
    sudo ufw allow 50010/tcp  # DataNode数据传输端口
    sudo ufw allow 50070/tcp  # HDFS Web UI端口
    sudo ufw allow 8032/tcp   # YARN ResourceManager端口
    sudo ufw allow 8042/tcp   # YARN NodeManager端口
    sudo ufw reload           # 重新加载防火墙规则
    
  • 若使用iptables,需添加相应规则并保存。

6. 网络性能优化参数

调整操作系统网络参数,提升Hadoop集群的网络性能:

  • 编辑/etc/sysctl.conf文件,添加以下参数:
    net.core.rmem_max=16777216  # 接收缓冲区最大值
    net.core.wmem_max=16777216  # 发送缓冲区最大值
    net.ipv4.tcp_rmem=4096 87380 16777216  # TCP接收缓冲区大小范围
    net.ipv4.tcp_wmem=4096 65536 16777216  # TCP发送缓冲区大小范围
    net.ipv4.tcp_congestion_control=cubic  # 拥塞控制算法(优化传输效率)
    
  • 应用参数:sudo sysctl -p

7. 主机名设置

为每个节点设置易识别的主机名(如namenodedatanode1),避免使用默认的ubuntu等通用名称。通过以下命令设置:

sudo hostnamectl set-hostname namenode  # 设置主机名

修改后需重启节点或重新登录使更改生效。

8. 网络连通性验证

配置完成后,需验证节点间的网络通信是否正常:

  • 使用ping命令测试节点间连通性:ping datanode1(替换为目标节点主机名或IP);
  • 使用ssh命令测试无密码登录:ssh datanode1(无需输入密码);
  • 查看HDFS状态:hdfs dfsadmin -report(确认DataNode是否注册);
  • 查看YARN节点状态:yarn node -list(确认NodeManager是否连接)。

0