温馨提示×

Linux里Hadoop网络如何配置

小樊
45
2026-01-01 06:13:59
栏目: 智能运维

Linux下Hadoop网络配置实操指南

一 基础网络与主机准备

  • 规划网络与主机名:为每台机器设置唯一主机名(如:master、slave1、slave2),并在所有节点统一配置 /etc/hosts,确保通过主机名可互通。示例:
    192.168.1.100 master
    192.168.1.101 slave1
    192.168.1.102 slave2
    
  • 静态IP(示例为RHEL/CentOS系):编辑网卡配置(如 /etc/sysconfig/network-scripts/ifcfg-eth0ifcfg-ens33),设置 BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1、ONBOOT=yes,然后重启网络服务。
  • 主机名设置:使用命令 hostnamectl set-hostname <主机名> 永久生效。
  • 连通性与解析自检:在各节点执行 ping master、ping slave1 等,确认网络与DNS解析正常。

二 系统与安全策略

  • 防火墙:测试/开发环境可临时关闭(不建议生产):systemctl stop firewalld && systemctl disable firewalld;生产环境应按需放行端口(见文末端口清单)。
  • SELinux:开发环境可放宽:setenforce 0(或编辑 /etc/selinux/config 设为 permissive),生产环境请按需配置策略。
  • 时钟同步:建议启用 NTP 或定时同步,避免分布式任务因时间漂移异常:
    crontab -e
    0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
    
  • SSH免密登录:在 master 生成密钥并分发到所有节点(含自身),确保 ~/.ssh 权限为 700~/.ssh/authorized_keys600
    ssh-keygen -t rsa
    ssh-copy-id master
    ssh-copy-id slave1
    ssh-copy-id slave2
    

三 Hadoop网络关键配置

  • 环境变量(所有节点):在 ~/.bashrc/etc/profile 中设置 JAVA_HOME、HADOOP_HOME、PATH 并生效:
    export JAVA_HOME=/usr/java/latest
    export HADOOP_HOME=/opt/hadoop
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    source ~/.bashrc
    
  • 核心配置示例(按实际主机名/IP替换):
    • core-site.xml
      <configuration>
        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://master:8020</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/hadoopData/temp</value>
        </property>
      </configuration>
      
    • hdfs-site.xml
      <configuration>
        <property>
          <name>dfs.replication</name>
          <value>3</value>
        </property>
        <property>
          <name>dfs.namenode.name.dir</name>
          <value>/hadoop/dfs/name</value>
        </property>
        <property>
          <name>dfs.datanode.data.dir</name>
          <value>/hadoop/dfs/data</value>
        </property>
        <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>slave1:50090</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>
        <property>
          <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
          <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
      </configuration>
      
  • 初始化与启动
    hdfs namenode -format
    start-dfs.sh
    start-yarn.sh
    
  • 常用访问端口(用于防火墙放行或排障)
    • HDFS:50070(NameNode Web)、50075(DataNode Web)、8020(RPC)
    • YARN:8088(ResourceManager Web)
    • 历史服务器:19888

四 验证与常见问题

  • 连通性与服务自检
    • 节点互通:ping master、ping slave1;SSH免密登录验证。
    • 进程检查:在各节点执行 jps,应见到 NameNode、DataNode、ResourceManager、NodeManager 等关键进程。
    • Web 界面:访问 http://master:50070(HDFS)、http://master:8088(YARN)确认服务状态。
  • 常见网络问题定位
    • 主机名解析失败:核对 /etc/hostshostname 是否一致,避免回环或错配。
    • 端口不通:检查 firewalld/iptables 策略与端口占用(如 netstat -tulpen | grep 8020)。
    • DataNode未注册:核对 dfs.replicationdfs.datanode.data.dir 权限;必要时开启 dfs.namenode.datanode.registration.ip-hostname-check 以严格校验主机名与IP映射。

0