温馨提示×

Ubuntu Hadoop 网络设置指南

小樊
38
2025-11-09 05:58:24
栏目: 智能运维

Ubuntu Hadoop网络设置指南
在Ubuntu系统上搭建Hadoop集群时,稳定的网络环境是节点间通信的基础。以下是详细的网络配置步骤,涵盖静态IP设置、主机名解析、SSH无密码登录等关键环节:

1. 配置静态IP地址

Hadoop集群需要固定的IP地址以保证节点间通信稳定。Ubuntu 18.04及以上版本推荐使用netplan工具配置静态IP。

  • 打开网络配置文件(文件名因系统版本而异,常见为/etc/netplan/01-netcfg.yaml/etc/netplan/00-installer-config.yaml):
    sudo nano /etc/netplan/01-netcfg.yaml
    
  • 修改文件内容(以ens33网卡为例,需替换为实际网卡名称,可通过ip a命令查看):
    network:
      version: 2
      renderer: networkd
      ethernets:
        ens33:
          dhcp4: no  # 关闭DHCP
          addresses: [192.168.1.100/24]  # 静态IP地址及子网掩码
          gateway4: 192.168.1.1  # 默认网关(与路由器或宿主机网关一致)
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]  # DNS服务器(推荐使用国内公开DNS)
    
  • 保存文件并应用配置:
    sudo netplan apply
    
  • 验证IP设置:
    ip a | grep ens33  # 检查IP地址是否生效
    

2. 配置DNS解析

为确保系统能解析主机名(如masterslave1),需修改/etc/resolv.conf文件(部分系统可能需要修改/etc/resolvconf/resolv.conf.d/base以实现永久生效)。

  • 编辑/etc/resolv.conf
    sudo nano /etc/resolv.conf
    
  • 添加DNS服务器地址(可选,若netplan已配置则无需重复):
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
  • 若使用resolvconf(Ubuntu 18.04及以上常用),编辑base文件:
    sudo nano /etc/resolvconf/resolv.conf.d/base
    
    添加相同内容后,执行以下命令更新DNS缓存:
    sudo resolvconf -u
    

3. 修改hosts文件实现主机名映射

Hadoop依赖主机名识别节点,需在所有节点的/etc/hosts文件中添加IP与主机名的映射关系(避免使用127.0.0.1映射主机名,否则会导致通信异常)。

  • 编辑/etc/hosts
    sudo nano /etc/hosts
    
  • 添加集群节点信息(示例,需替换为实际IP和主机名):
    192.168.1.100 master
    192.168.1.101 slave1
    192.168.1.102 slave2
    
  • 保存后,可通过ping命令验证主机名解析是否生效:
    ping master -c 3
    ping slave1 -c 3
    

4. 配置SSH无密码登录

Hadoop集群中,NameNode需要无密码SSH登录到所有DataNode,ResourceManager需要无密码登录到所有NodeManager。

  • 在主节点(如master)上生成SSH密钥对(若已存在密钥,可跳过生成步骤):
    ssh-keygen -t rsa  # 直接按回车键,使用默认路径和空密码
    
  • 将公钥复制到所有从节点(如slave1slave2):
    ssh-copy-id master@slave1  # 替换为实际从节点IP或主机名
    ssh-copy-id master@slave2
    
  • 测试无密码登录:
    ssh master@slave1  # 应无需输入密码即可登录
    ssh master@slave2
    

5. 配置Hadoop网络相关参数

修改Hadoop核心配置文件,指定集群通信地址、端口等参数(配置文件位于$HADOOP_HOME/etc/hadoop目录下)。

  • core-site.xml:设置HDFS的默认文件系统地址(需替换为NameNode的实际IP或主机名):
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>  <!-- 若使用主机名,需确保DNS解析正确 -->
      </property>
    </configuration>
    
  • hdfs-site.xml:配置HDFS副本数(生产环境建议设为3)及数据存储目录(需提前创建):
    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>  <!-- NameNode元数据存储路径 -->
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/dfs/data</value>  <!-- DataNode数据存储路径 -->
      </property>
    </configuration>
    
  • yarn-site.xml:配置ResourceManager地址及Shuffle服务:
    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>  <!-- ResourceManager所在节点主机名 -->
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>  <!-- 启用MapReduce Shuffle服务 -->
      </property>
    </configuration>
    
  • mapred-site.xml(若未创建,需从mapred-site.xml.template复制):指定MapReduce框架为YARN:
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>
    

6. 配置防火墙允许Hadoop端口通信

Ubuntu默认使用ufw防火墙,需开放Hadoop所需端口以保证节点间通信。

  • 允许常用Hadoop端口(可根据实际需求调整):
    sudo ufw allow 8020/tcp  # HDFS NameNode端口
    sudo ufw allow 50010/tcp  # HDFS DataNode数据传输端口
    sudo ufw allow 50070/tcp  # HDFS Web UI端口
    sudo ufw allow 8088/tcp  # YARN ResourceManager Web UI端口
    sudo ufw allow 22/tcp  # SSH端口(必需)
    
  • 启用防火墙:
    sudo ufw enable
    
  • 验证防火墙状态:
    sudo ufw status  # 查看已开放的端口
    

7. 验证网络配置

完成上述步骤后,需通过以下命令验证网络是否满足Hadoop集群要求:

  • 测试节点间连通性:在主节点上ping所有从节点,确保能正常通信:
    ping slave1 -c 3
    ping slave2 -c 3
    
  • 测试SSH无密码登录:从主节点登录到所有从节点,确认无需输入密码:
    ssh slave1
    ssh slave2
    
  • 检查Hadoop服务状态:启动Hadoop集群后,使用以下命令查看节点状态:
    hdfs dfsadmin -report  # 查看DataNode是否注册
    yarn node -list  # 查看NodeManager是否注册
    

通过以上步骤,Ubuntu系统的网络配置将满足Hadoop集群的需求,为后续集群启动和数据处理奠定基础。若遇到网络问题,可通过tail -f $HADOOP_HOME/logs/*查看Hadoop日志定位具体原因。

0