linux

Hadoop在Linux如何进行网络设置

小樊
40
2025-10-10 03:13:47
栏目: 智能运维

一、基础网络环境配置

  1. 设置静态IP地址
    为确保集群节点IP稳定,需将Linux节点的网络接口配置为静态IP。编辑对应网卡配置文件(如CentOS/RHEL的/etc/sysconfig/network-scripts/ifcfg-ens33、Debian/Ubuntu的/etc/network/interfaces),添加以下内容:

    TYPE=Ethernet
    BOOTPROTO=static  # 静态IP模式
    IPADDR=192.168.1.100  # 节点IP地址
    NETMASK=255.255.255.0  # 子网掩码
    GATEWAY=192.168.1.1  # 网关地址
    DNS1=8.8.8.8  # DNS服务器
    ONBOOT=yes  # 开机自启
    

    保存后重启网络服务(systemctl restart networkservice network restart)。

  2. 配置主机名与hosts映射

    • 设置节点主机名(如master、slave1):hostnamectl set-hostname <主机名>
    • 编辑/etc/hosts文件,添加IP与主机名的映射(所有节点需一致):
      192.168.1.100 master
      192.168.1.101 slave1
      192.168.1.102 slave2
      
      这样可通过主机名直接访问节点,避免依赖DNS。

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

  1. 在所有节点生成RSA密钥对:ssh-keygen -t rsa(直接回车,默认保存到~/.ssh/id_rsa)。
  2. 将公钥复制到所有节点(包括自身):ssh-copy-id user@masterssh-copy-id user@slave1(替换为用户和节点主机名/IP)。
  3. 测试免密登录:ssh masterssh slave1,无需输入密码即可登录。

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

  1. core-site.xml
    配置HDFS默认文件系统和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>
        <property>
            <name>ipc.client.connect.timeout</name>
            <value>60000</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/namenode</value>  <!-- NameNode元数据目录 -->
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/opt/hadoop/datanode</value>  <!-- DataNode数据目录 -->
        </property>
        <property>
            <name>dfs.namenode.handler.count</name>
            <value>100</value>  <!-- NameNode RPC处理线程数 -->
        </property>
    </configuration>
    
  3. 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>  <!-- MapReduce Shuffle服务 -->
        </property>
        <property>
            <name>yarn.nodemanager.resource.memory-mb</name>
            <value>8192</value>  <!-- NodeManager可用内存(MB) -->
        </property>
    </configuration>
    
  4. mapred-site.xml
    指定MapReduce运行框架为YARN:
    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  5. slaves文件
    列出所有DataNode和NodeManager节点(位于Hadoop安装目录的etc/hadoop/下),每行一个主机名:
    slave1
    slave2
    
    此文件用于Hadoop自动分发任务和管理节点。

四、网络优化与安全配置

  1. 调整系统网络参数
    编辑/etc/sysctl.conf,优化TCP缓冲区和连接数,提升网络性能:

    net.core.rmem_max=16777216
    net.core.wmem_max=16777216
    net.ipv4.tcp_rmem=4096 87380 16777216
    net.ipv4.tcp_wmem=4096 65536 16777216
    net.ipv4.ip_local_port_range=1024 65535
    net.core.somaxconn=65535
    

    应用配置:sudo sysctl -p

  2. 关闭防火墙与SELinux

    • 临时关闭防火墙:systemctl stop firewalld(CentOS/RHEL)或systemctl stop firewalld(Ubuntu/Debian)。
    • 永久禁用防火墙:systemctl disable firewalld
    • 关闭SELinux(开发环境建议):setenforce 0,并修改/etc/selinux/config中的SELINUX=disabled

五、验证网络配置

  1. 连通性测试:使用ping命令检查节点间是否可达(如ping slave1)。
  2. SSH登录测试:通过ssh masterssh slave1验证免密登录是否成功。
  3. Hadoop服务验证:格式化NameNode(hdfs namenode -format),启动集群(start-dfs.shstart-yarn.sh),访问Web界面(NameNode:http://master:50070,ResourceManager:http://master:8088),查看节点状态是否正常。

0
看了该问题的人还看了