当前位置: 首页 > news >正文

Hadoop集群安装与配置指南(CentOS 7)

Hadoop集群安装与配置指南(CentOS 7)


一、虚拟机准备
  1. 安装虚拟机软件

    • 下载VMware或VirtualBox,完成安装并激活。

    • 注意:选择NAT模式,配置子网IP(如192.168.10.0)。

  2. CentOS 7安装

    • 下载CentOS 7镜像,安装时选择最小化安装(Minimal Install)。

    • 配置语言、时区(建议上海),分配磁盘空间(建议20GB+)。


二、网络配置
  1. 虚拟机网络设置

    • 打开 虚拟网络编辑器 → 选择NAT模式 → 修改子网IP为 192.168.10.0

    • 设置网关为 192.168.10.2

  2. 物理机DNS配置

    • 打开物理机的网络适配器 → IPv4属性 → 设置DNS为 192.168.10.2

  3. 虚拟机静态IP配置

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    
    • 修改以下内容:
      BOOTPROTO=static
      ONBOOT=yes
      IPADDR=192.168.10.100  # 主节点IP
      GATEWAY=192.168.10.2
      DNS1=192.168.10.2
      
    • 重启网络:systemctl restart network

  4. 主机名与Hosts映射

    vim /etc/hostname  # 修改为 hadoop100
    vim /etc/hosts     # 添加所有节点IP映射
    
    • 内容示例:
      192.168.10.100 hadoop100
      192.168.10.101 hadoop101
      ...(其他节点)
      
    • 生效配置:reboot 或 hostnamectl set-hostname hadoop100


三、工具连接与克隆
  1. Xshell/Xftp配置

    • 物理机修改 C:\Windows\System32\drivers\etc\hosts,添加节点映射。

  2. 克隆虚拟机

    • 克隆后需修改每台主机的 hostname 和 IPADDR(如hadoop101→192.168.10.101)。


四、环境准备
  1. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  2. 创建用户并授权

    useradd xiaohong
    passwd xiaohong
    visudo  # 添加 xiaohong ALL=(ALL) NOPASSWD:ALL
    
  3. 卸载旧JDK

    rpm -qa | grep java | xargs -n1 rpm -e --nodeps
    
  4. 安装JDK & Hadoop

    • 创建目录:
      sudo mkdir /opt/{software,module}
      sudo chown -R xiaohong /opt/*
      
    • 解压JDK和Hadoop到 /opt/module
      tar -zxvf jdk-8u381-linux-x64.tar.gz -C /opt/module/
      tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
      
  5. 环境变量配置

    sudo vim /etc/profile.d/my_env.sh
    
    • 添加内容:
      export JAVA_HOME=/opt/module/jdk1.8.0_381
      export HADOOP_HOME=/opt/module/hadoop-3.1.3
      export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    • 生效配置:source /etc/profile


五、集群配置
  1. 配置文件修改

    • core-site.xml(NameNode地址):
      <property>
          <name>fs.defaultFS</name>
          <value>hdfs://hadoop101:8020</value>
      </property>
      
    • hdfs-site.xml(SecondaryNameNode地址):
      <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop103:9868</value>
      </property>
      
    • yarn-site.xml(ResourceManager地址):
      <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>hadoop102</value>
      </property>
      
    • mapred-site.xml(MapReduce运行模式):
      <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
      </property>
      
  2. 分发配置到集群

    • 使用 xsync 脚本同步配置:
      xsync /opt/module/hadoop-3.1.3/etc/hadoop/
      
  3. SSH免密登录

    • 生成密钥并分发:
      ssh-keygen -t rsa
      ssh-copy-id hadoop101  # 所有节点执行
      

六、集群启动与测试
  1. 首次启动

    • 格式化HDFS(仅在hadoop101执行一次):
      hdfs namenode -format
      
    • 启动HDFS和YARN:
      start-dfs.sh    # 在hadoop101执行
      start-yarn.sh   # 在hadoop102执行
      
  2. 验证服务

    • 检查进程:jps
      • hadoop101: NameNode, DataNode

      • hadoop102: ResourceManager, NodeManager

      • hadoop103: SecondaryNameNode, DataNode

    • Web访问:
      • HDFS: http://hadoop101:9870

      • YARN: http://hadoop102:8088

  3. 测试WordCount

    hadoop fs -mkdir /input
    hadoop fs -put $HADOOP_HOME/README.txt /input
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
    

七、集群管理脚本
  1. 集群启停脚本 (myhadoop.sh)

    #!/bin/bash
    case $1 in
    "start")
        ssh hadoop101 "start-dfs.sh"
        ssh hadoop102 "start-yarn.sh"
        ;;
    "stop")
        ssh hadoop101 "stop-dfs.sh"
        ssh hadoop102 "stop-yarn.sh"
        ;;
    esac
    
  2. 进程查看脚本 (jpsall)

    #!/bin/bash
    for host in hadoop{101..103}; do
        echo "======== $host ========"
        ssh $host jps
    done
    

八、常见问题
  1. 权限问题

    • 确保目录所有权:sudo chown -R xiaohong /opt/module

    • 在 hadoop-env.sh 中设置用户:
      export HDFS_NAMENODE_USER=xiaohong
      export HDFS_DATANODE_USER=xiaohong
      
  2. 端口冲突

    • Hadoop 3.x 的NameNode Web端口为 9870(非50070)。

  3. 历史服务器无法访问

    • 启动服务:mapred --daemon start historyserver


通过遵循上述步骤,您将能够成功部署一个完全分布式的Hadoop 3.1.3集群。建议在操作前备份关键配置文件,并逐步验证每项服务是否正常启动。

相关文章:

  • 力扣LeetCode: 1742 盒子中小球的最大数量
  • 5-CDE说明
  • buu-jarvisoj_level2_x64-好久不见37
  • Ubuntu 上安装 Elasticsearch 7.6.0
  • 计算机毕业设计--基于深度学习技术(Yolov11、v8、v7、v5)算法的高效人脸检测模型设计与实现(含Github代码+Web端在线体验界面)
  • 接入 SSL 认证配置:满足等保最佳实践
  • 神经网络常见激活函数 12-Swish函数
  • 动态规划 之 排列与组合问题
  • SpringBoot(接受参数相关注解)
  • Unity序列化多态数组
  • PyQt6/PySide6 的 QThread 类
  • 18.Python实战:实现年会抽奖系统
  • 计算机网络原理试题二
  • 1317:【例5.2】组合的输出
  • Spring Boot中如何自定义Starter
  • DC-6靶机渗透测试全过程
  • matlab平面波展开法计算的二维声子晶体带隙
  • 代码讲解系列-CV(三)——Transformer系列
  • SQL 建表语句详解
  • (前端基础)HTML(二)
  • 欧盟公布对美关税反制清单,瞄准美国飞机等产品
  • 普雷沃斯特当选新一任天主教罗马教皇
  • 丰田汽车:美国关税或导致4、5月损失1800亿日元,新财年净利润下滑三成
  • 98岁动物学家、北京大学教授杨安峰逝世
  • 印官员称巴基斯坦在克什米尔实控线附近开火已致7死38伤
  • 上海飞银川客机触地复飞后备降西安,亲历者:不少乘客都吐了