温馨提示×

HDFS在Ubuntu上的网络设置

小樊
36
2025-10-29 14:12:29
栏目: 智能运维

HDFS在Ubuntu上的网络设置指南

1. 配置静态IP地址

静态IP是集群节点稳定通信的基础,避免DHCP动态分配导致的IP变动。以Ubuntu 22.04为例,通过netplan工具配置(配置文件路径通常为/etc/netplan/01-network-manager-all.yaml):

network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:  # 网卡名称(通过`ip a`命令查看)
      dhcp4: no
      addresses: ["192.168.88.10/24"]  # 设置静态IP及子网掩码
      gateway4: 192.168.88.2          # 网关地址(与物理网络一致)
      nameservers:
        addresses: ["8.8.8.8", "1.1.1.1"]  # DNS服务器

应用配置:sudo netplan apply

2. 配置主机名解析

通过/etc/hosts文件实现节点名称与IP的映射,避免依赖DNS解析(提升通信效率并减少外部依赖)。编辑/etc/hosts,添加集群所有节点的信息:

192.168.88.10 master  # 主节点(NameNode、ResourceManager)
192.168.88.11 slave1  # 从节点1(DataNode、NodeManager)
192.168.88.12 slave2  # 从节点2(DataNode、NodeManager)

确保所有节点的/etc/hosts文件内容一致。

3. 配置SSH免密登录

实现节点间无密码通信,是Hadoop集群管理的核心需求(如NameNode向DataNode分发任务)。操作步骤:

  • 在主节点生成SSH密钥对:ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa(直接回车,默认保存路径)。
  • 将公钥复制到所有从节点:ssh-copy-id hadoop@slave1ssh-copy-id hadoop@slave2hadoop为节点用户名,需提前创建并设置密码)。
  • 测试免密登录:ssh slave1,若无需输入密码即可登录,则配置成功。

4. 配置Hadoop网络相关参数

修改Hadoop核心配置文件(位于$HADOOP_HOME/etc/hadoop目录),确保网络通信端口和路径正确:

  • core-site.xml:定义HDFS的默认文件系统地址(主节点NameNode的IP和端口)。
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>  <!-- 替换为你的主节点IP或主机名 -->
      </property>
    </configuration>
    
  • hdfs-site.xml:配置NameNode和DataNode的数据存储路径、副本数(分布式存储的核心参数)。
    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>3</value>  <!-- 副本数(根据集群规模调整,生产环境建议3) -->
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/data/namenode</value>  <!-- NameNode元数据存储路径 -->
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop/data/datanode</value>  <!-- DataNode数据存储路径 -->
      </property>
    </configuration>
    
  • yarn-site.xml:配置ResourceManager的主机名(YARN资源调度的核心)。
    <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>
    ```。
    
    
    

5. 配置防火墙允许Hadoop端口

Hadoop需要开放多个端口用于节点间通信,使用ufw(Ubuntu防火墙工具)放行所需端口:

sudo ufw allow 9000/tcp    # NameNode RPC端口
sudo ufw allow 50070/tcp   # NameNode Web UI端口(Hadoop 3.x可能为9870)
sudo ufw allow 8088/tcp    # ResourceManager Web UI端口
sudo ufw allow 50010/tcp   # DataNode数据传输端口
sudo ufw allow 50020/tcp   # DataNode IPC端口
sudo ufw allow 50090/tcp   # SecondaryNameNode端口
sudo ufw enable            # 启用防火墙

验证防火墙状态:sudo ufw status,确保上述端口处于“ALLOW”状态。

6. 验证网络连通性

在所有节点上执行以下命令,确保网络配置正确:

  • Ping测试ping masterping slave1,确保节点间IP连通。
  • 端口测试telnet master 9000(替换为你的NameNode IP和端口),确保端口可访问。
  • 主机名解析测试ping slave1,通过主机名能正确解析到IP地址。

完成以上步骤后,HDFS的网络基础配置完成,可继续执行hdfs namenode -format(首次启动需格式化)和start-dfs.sh(启动HDFS)命令,启动HDFS服务。

0