linux

Hadoop在Linux上如何配置网络

小樊
44
2025-09-21 05:00:04
栏目: 智能运维

一、基础网络环境配置

  1. 设置静态IP地址
    为确保集群节点IP稳定,需将Linux系统的网络接口配置为静态IP。根据Linux发行版差异,编辑对应配置文件:

    • CentOS/RHEL:修改/etc/sysconfig/network-scripts/ifcfg-ens33(接口名以ip a命令为准),添加以下内容:
      TYPE=Ethernet
      BOOTPROTO=static
      IPADDR=192.168.1.100  # 集群节点IP(如master为192.168.1.100,slave1为192.168.1.101)
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1   # 网关地址
      DNS1=8.8.8.8          # DNS服务器
      ONBOOT=yes            # 开机自启
      
    • Debian/Ubuntu:若使用netplan,编辑/etc/netplan/01-netcfg.yaml,示例如下:
      network:
        version: 2
        ethernets:
          ens33:
            dhcp4: no
            addresses: [192.168.1.100/24]
            gateway4: 192.168.1.1
            nameservers:
              addresses: [8.8.8.8, 8.8.4.4]
      

    保存后重启网络服务:systemctl restart network(CentOS)或netplan apply(Debian/Ubuntu)。

  2. 配置主机名与hosts映射

    • 设置主机名:在每台节点上执行hostnamectl set-hostname <主机名>(如master节点执行hostnamectl set-hostname master),然后重启系统或执行hostname命令使变更生效。
    • 编辑hosts文件:在所有节点的/etc/hosts文件中添加IP与主机名的映射,确保节点间可通过主机名互相访问:
      192.168.1.100 master
      192.168.1.101 slave1
      192.168.1.102 slave2
      ```。  
      
      
      

二、SSH免密码登录配置 Hadoop集群节点间需频繁通信(如NameNode与DataNode、ResourceManager与NodeManager),配置SSH免密码登录可避免重复输入密码。

  1. 生成SSH密钥对:在所有节点上执行ssh-keygen -t rsa,按提示回车(默认保存路径为~/.ssh/id_rsa,无需设置密码)。
  2. 分发公钥:在master节点上执行ssh-copy-id master(本机),再执行ssh-copy-id slave1ssh-copy-id slave2(将公钥复制到各从节点),实现master到所有节点的无密码登录。
  3. 验证连通性:执行ssh masterssh slave1,若无需密码即可登录,则配置成功。

三、Hadoop核心网络配置文件 Hadoop的网络行为主要由以下配置文件控制,需根据集群规模调整参数:

  1. core-site.xml:配置Hadoop默认文件系统和IPC通信端口,示例如下:
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>  <!-- NameNode的RPC地址 -->
      </property>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop/tmp</value>    <!-- 临时文件目录 -->
      </property>
    </configuration>
    
  2. hdfs-site.xml:配置HDFS副本数、NameNode/DataNode数据目录及端口,示例如下:
    <configuration>
      <property>
        <name>dfs.replication</name>
        <value>3</value>  <!-- 副本数(生产环境建议3,测试环境可设为1) -->
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/hadoop/dfs/name</value>  <!-- NameNode元数据存储目录 -->
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/hadoop/dfs/data</value>  <!-- DataNode数据存储目录 -->
      </property>
    </configuration>
    
  3. mapred-site.xml:配置MapReduce运行框架(需依赖YARN),示例如下:
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>  <!-- MapReduce运行在YARN上 -->
      </property>
    </configuration>
    
  4. yarn-site.xml:配置YARN资源管理器及NodeManager,示例如下:
    <configuration>
      <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>  <!-- ResourceManager所在节点 -->
      </property>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>  <!-- Shuffle服务 -->
      </property>
    </configuration>
    
  5. slaves文件:列出所有DataNode节点的主机名(每行一个),Hadoop将通过该文件管理集群节点:
    slave1
    slave2
    ```。  
    
    
    

四、网络安全配置

  1. 关闭防火墙:临时关闭防火墙(测试环境):systemctl stop firewalld(CentOS)或systemctl stop ufw(Ubuntu);永久关闭:systemctl disable firewalld
  2. 关闭SELinux:临时关闭:setenforce 0;永久关闭:编辑/etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled

五、验证网络配置

  1. 连通性测试:在master节点上执行ping slave1ping slave2,若能收到回复则节点间网络连通。
  2. SSH登录测试:执行ssh slave1,若无需密码即可进入从节点,则SSH配置成功。
  3. Hadoop服务验证
    • 格式化NameNode:hdfs namenode -format(首次启动需执行,删除旧元数据)。
    • 启动集群:start-dfs.sh(启动HDFS)、start-yarn.sh(启动YARN)。
    • 查看进程:在master节点执行jps,应看到NameNodeResourceManager等进程;在slave节点执行jps,应看到DataNodeNodeManager等进程。
    • 访问Web界面:通过浏览器访问http://master:50070(HDFS Web界面)、http://master:8088(YARN Web界面),确认集群状态正常。

0
看了该问题的人还看了