首页主机资讯Ubuntu与Hadoop网络配置指南

Ubuntu与Hadoop网络配置指南

时间2025-10-02 02:57:03发布访客分类主机资讯浏览602
导读:Ubuntu与Hadoop网络配置指南 1. 网络接口静态IP配置 Hadoop集群需要稳定的网络环境,建议为所有节点(NameNode、DataNode、ResourceManager、NodeManager等)配置静态IP。 Ubun...

Ubuntu与Hadoop网络配置指南

1. 网络接口静态IP配置

Hadoop集群需要稳定的网络环境,建议为所有节点(NameNode、DataNode、ResourceManager、NodeManager等)配置静态IP。

  • Ubuntu 18.04及以上版本:使用ip命令临时配置(重启失效),或编辑/etc/netplan/*.yaml文件永久生效(如01-netcfg.yaml)。示例配置:
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.100/24]  # 静态IP及子网掩码
          gateway4: 192.168.1.1          # 网关
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4] # DNS服务器
    
    应用配置:sudo netplan apply
  • Ubuntu 16.04及以下版本:编辑/etc/network/interfaces文件,添加以下内容:
    auto eth0
    iface eth0 inet static
      address 192.168.1.100
      netmask 255.255.255.0
      gateway 192.168.1.1
      dns-nameservers 8.8.8.8 8.8.4.4
    
    重启网络:sudo systemctl restart networking

2. 主机名与hosts文件映射

确保所有节点的主机名与IP地址一一对应,避免Hadoop通过主机名通信时解析失败。

  • 编辑/etc/hostname文件,设置节点主机名(如NameNode设为master,DataNode设为slave1)。
  • 编辑/etc/hosts文件,添加所有节点的IP与主机名映射(所有节点配置需一致):
    192.168.1.100 master
    192.168.1.101 slave1
    192.168.1.102 slave2
    
    保存后,可通过ping master命令验证解析是否正确。

3. SSH无密码登录配置

Hadoop集群中,NameNode需要通过SSH无密码登录到所有DataNode,ResourceManager需要无密码登录到所有NodeManager。

  • 生成SSH密钥对(在NameNode/ResourceManager上执行):
    ssh-keygen -t rsa -P ''  # 默认保存路径~/.ssh/id_rsa
    
  • 分发公钥到所有节点
    cat ~/.ssh/id_rsa.pub | ssh user@slave1 "mkdir -p ~/.ssh &
        &
         cat >
        >
         ~/.ssh/authorized_keys"
    cat ~/.ssh/id_rsa.pub | ssh user@slave2 "mkdir -p ~/.ssh &
        &
         cat >
        >
         ~/.ssh/authorized_keys"
    
  • 验证无密码登录
    ssh slave1  # 无需输入密码即可登录
    ssh slave2
    

4. Hadoop核心网络配置文件

修改Hadoop配置文件(位于$HADOOP_HOME/etc/hadoop/目录),确保网络相关参数正确。

  • core-site.xml:指定HDFS的默认文件系统地址(NameNode的IP/主机名及端口):
    <
        configuration>
        
      <
        property>
        
        <
        name>
        fs.defaultFS<
        /name>
        
        <
        value>
        hdfs://master:9000<
        /value>
          <
        !-- 替换为NameNode的实际主机名/IP -->
        
      <
        /property>
        
    <
        /configuration>
        
    
  • 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>
        
    
  • yarn-site.xml:配置ResourceManager主机名及Shuffle服务:
    <
        configuration>
        
      <
        property>
        
        <
        name>
        yarn.resourcemanager.hostname<
        /name>
        
        <
        value>
        master<
        /value>
          <
        !-- 替换为ResourceManager的实际主机名/IP -->
        
      <
        /property>
        
      <
        property>
        
        <
        name>
        yarn.nodemanager.aux-services<
        /name>
        
        <
        value>
        mapreduce_shuffle<
        /value>
        
      <
        /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需要开放多个端口用于节点间通信,需配置防火墙允许这些端口的流量。

  • Ubuntu(ufw):允许常用Hadoop端口(如HDFS、YARN):
    sudo ufw allow 9000/tcp   # HDFS NameNode默认端口
    sudo ufw allow 50070/tcp  # HDFS Web UI
    sudo ufw allow 8088/tcp   # YARN ResourceManager Web UI
    sudo ufw allow 50010/tcp  # DataNode数据传输端口
    sudo ufw allow 50020/tcp  # DataNode IPC端口
    sudo ufw enable           # 启用防火墙
    
  • CentOS(firewalld)
    sudo firewall-cmd --permanent --add-port=9000/tcp
    sudo firewall-cmd --permanent --add-port=50070/tcp
    sudo firewall-cmd --permanent --add-port=8088/tcp
    sudo firewall-cmd --permanent --add-port=50010/tcp
    sudo firewall-cmd --permanent --add-port=50020/tcp
    sudo firewall-cmd --reload
    

6. 格式化HDFS与启动集群

  • 格式化HDFS:首次启动集群前,需格式化NameNode(会清除原有数据,仅第一次执行):
    hdfs namenode -format
    
  • 启动Hadoop集群
    start-dfs.sh   # 启动HDFS(NameNode、DataNode)
    start-yarn.sh  # 启动YARN(ResourceManager、NodeManager)
    
  • 验证集群状态
    • 查看HDFS节点列表:hdfs dfsadmin -report
    • 查看YARN节点列表:yarn node -list
    • 访问Web UI:浏览器输入http://master:50070(HDFS)或http://master:8088(YARN)。

7. 常见问题排查

  • 节点间无法ping通:检查网络接口配置、IP地址是否冲突、网线连接是否正常。
  • SSH登录失败:确认公钥已正确复制到目标节点的~/.ssh/authorized_keys文件,且文件权限为600chmod 600 ~/.ssh/authorized_keys)。
  • HDFS无法启动:检查core-site.xml中的fs.defaultFS配置是否正确,NameNode数据目录(dfs.namenode.name.dir)是否存在且具备读写权限。
  • YARN无法提交任务:检查yarn-site.xml中的yarn.resourcemanager.hostname配置,ResourceManager服务是否正常启动(jps命令查看是否有ResourceManager进程)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu与Hadoop网络配置指南
本文地址: https://pptw.com/jishu/716581.html
如何利用Ubuntu优化Hadoop性能 Ubuntu上Hadoop数据存储策略

游客 回复需填写必要信息