linux

Hadoop在Linux上的网络配置怎么做

小樊
42
2025-08-29 20:18:51
栏目: 智能运维

一、基础网络环境配置

  1. 设置静态IP地址
    静态IP是集群节点稳定通信的基础,需根据Linux发行版修改对应网络配置文件:

    • Debian/Ubuntu:编辑/etc/network/interfaces,添加以下内容(以eth0为例):
      auto eth0
      iface eth0 inet static
          address 192.168.1.100  # 节点IP地址
          netmask 255.255.255.0  # 子网掩码
          gateway 192.168.1.1    # 网关地址
          dns-nameservers 8.8.8.8 8.8.4.4  # DNS服务器
      
    • CentOS/RHEL:编辑/etc/sysconfig/network-scripts/ifcfg-eth0eth0为网卡名),设置:
      TYPE=Ethernet
      BOOTPROTO=static
      IPADDR=192.168.1.100
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
      ONBOOT=yes  # 开机自启
      

    保存后重启网络服务:systemctl restart network(CentOS 7以下)或systemctl restart NetworkManager(CentOS 7及以上)。

  2. 配置主机名与hosts映射

    • 设置节点主机名(如masterslave1):hostnamectl set-hostname <主机名>
    • 编辑/etc/hosts文件,添加IP与主机名的映射(所有节点需一致):
      192.168.1.100 master
      192.168.1.101 slave1
      192.168.1.102 slave2
      

    这样可通过主机名直接访问节点,避免依赖DNS。

  3. 关闭防火墙与SELinux

    • 临时关闭防火墙:systemctl stop firewalld(CentOS)或systemctl stop ufw(Ubuntu)。
    • 永久禁用防火墙:systemctl disable firewalld
    • 关闭SELinux(开发环境推荐):
      setenforce 0  # 临时关闭
      sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config  # 永久关闭
      

    防火墙和SELinux可能会阻止Hadoop节点间的通信,关闭后可避免端口访问问题。

二、SSH免密码登录配置 Hadoop集群节点间需要频繁通信(如NameNode与DataNode、ResourceManager与NodeManager),配置SSH免密码登录可简化操作:

  1. 主节点(如master)生成SSH密钥对:
    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 默认保存路径~/.ssh/
    
  2. 将公钥复制到所有从节点(如slave1slave2):
    ssh-copy-id master  # 复制到本机(可选)
    ssh-copy-id slave1
    ssh-copy-id slave2
    
  3. 验证免密登录:
    ssh master  # 无需输入密码即可登录
    ssh slave1
    
    注意:确保~/.ssh目录权限为700~/.ssh/authorized_keys权限为600chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys)。

三、Hadoop核心网络配置文件 Hadoop的网络行为主要由core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml四个核心配置文件控制:

  1. core-site.xml
    配置HDFS默认文件系统和Hadoop临时目录:
    <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://master:9000</value>  <!-- NameNode的IP和端口 -->
        </property>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/hadoop/tmp</value>  <!-- 临时文件目录 -->
        </property>
    </configuration>
    
  2. hdfs-site.xml
    配置HDFS副本数(生产环境建议3个)和数据存储目录:
    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>3</value>  <!-- 数据块副本数 -->
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/opt/hadoop/namenode</value>  <!-- NameNode元数据存储路径 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/datanode</value>  <!-- DataNode数据存储路径 -->
        </property>
    </configuration>
    
  3. mapred-site.xml
    配置MapReduce运行框架为YARN(提升资源利用率):
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  4. yarn-site.xml
    配置YARN资源管理器(ResourceManager)和节点管理器(NodeManager):
    <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>
    
    以上配置需根据集群规模(如节点数量、数据量)调整,例如dfs.replication在测试环境可设为1。

四、验证网络配置

  1. 检查节点连通性
    在主节点使用ping命令测试与从节点的连通性(如ping slave1),确保网络畅通。
  2. 验证SSH免密登录
    执行ssh slave1,确认无需输入密码即可登录。
  3. 启动Hadoop集群
    • 格式化NameNode(首次启动需执行):hdfs namenode -format
    • 启动HDFS:start-dfs.sh
    • 启动YARN:start-yarn.sh
  4. 检查服务状态
    • 查看Hadoop进程:jps(应显示NameNode、DataNode、ResourceManager、NodeManager等进程)。
    • 访问Web界面:HDFS(http://master:50070)、YARN(http://master:8088),确认集群状态正常。

0
看了该问题的人还看了