首页主机资讯CentOS Hadoop虚拟机环境怎么搭建

CentOS Hadoop虚拟机环境怎么搭建

时间2025-11-24 11:19:04发布访客分类主机资讯浏览298
导读:CentOS 虚拟机搭建 Hadoop 环境实操指南 一 环境规划与准备 目标架构:建议先用一台虚拟机搭建单机伪分布式(学习验证最快),再扩展到3 节点集群(1 主 2 从)。 资源建议:每台虚拟机至少2 核 CPU、4GB 内存、50G...

CentOS 虚拟机搭建 Hadoop 环境实操指南

一 环境规划与准备

  • 目标架构:建议先用一台虚拟机搭建单机伪分布式(学习验证最快),再扩展到3 节点集群(1 主 2 从)。
  • 资源建议:每台虚拟机至少2 核 CPU、4GB 内存、50GB 磁盘;如使用 VMware/VirtualBox,网络优先桥接或**NAT(端口转发)**以便外部访问。
  • 软件版本:CentOS 7/8(本文以 7 为例)、Java 8(Hadoop 3.x 推荐)、Hadoop 3.3.x(稳定且资料多)。
  • 基础工具:安装常用工具(便于后续操作)
    sudo yum update -y & & sudo yum install -y wget tar openssh-clients which

二 虚拟机与基础系统配置

  • 静态 IP(示例网卡名 ens33,按实际调整)
    • 编辑:vi /etc/sysconfig/network-scripts/ifcfg-ens33
    • 关键项:
      BOOTPROTO=static
      ONBOOT=yes
      IPADDR=192.168.1.101
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
    • 使生效:systemctl restart network
  • 主机名与 hosts
    • 主机名:hostnamectl set-hostname hadoop-master(从节点分别为 hadoop-slave1/2)
    • hosts(所有节点一致):
      192.168.1.101 hadoop-master
      192.168.1.102 hadoop-slave1
      192.168.1.103 hadoop-slave2
  • 关闭防火墙与 SELinux
    • systemctl stop firewalld & & systemctl disable firewalld
    • sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config & & setenforce 0
  • 时间同步(可选但强烈建议)
    • yum install -y ntp & & systemctl start ntpd & & systemctl enable ntpd
  • 创建专用用户(推荐)
    • useradd hadoop & & echo “hadoop:hadoop” | chpasswd
    • echo “hadoop ALL=(ALL) NOPASSWD: ALL” > > /etc/sudoers(或 visudo 编辑)

三 安装 Java 与 Hadoop

  • 安装 JDK 8(两种常用方式,二选一)
    • OpenJDK:sudo yum install -y java-1.8.0-openjdk-devel
    • Oracle JDK:
      wget https://download.oracle.com/java/8/latest/jdk-8uXXX-linux-x64.tar.gz
      tar -zxvf jdk-8uXXX-linux-x64.tar.gz -C /opt/
      配置环境变量(全局或 hadoop 用户):
      echo ‘export JAVA_HOME=/opt/jdk1.8.0_XXX’ > > /etc/profile
      echo ‘export PATH=$PATH:$JAVA_HOME/bin’ > > /etc/profile
      source /etc/profile
  • 安装 Hadoop 3.3.x
    • wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
      tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
      mv /opt/hadoop-3.3.6 /opt/hadoop
    • 环境变量(建议写入 /etc/profile,所有用户可用):
      echo ‘export HADOOP_HOME=/opt/hadoop’ > > /etc/profile
      echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ > > /etc/profile
      source /etc/profile
    • 验证:java -version;hadoop version

四 配置 Hadoop(单机伪分布式,快速可用)

  • 配置 Hadoop 环境脚本
    • vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
      添加:export JAVA_HOME=/opt/jdk1.8.0_XXX
  • 核心配置文件($HADOOP_HOME/etc/hadoop/)
    • core-site.xml fs.defaultFS hdfs://localhost:9000
    • hdfs-site.xml dfs.replication 1 dfs.namenode.name.dir file:///opt/hadoop/data/namenode dfs.datanode.data.dir file:///opt/hadoop/data/datanode
    • mapred-site.xml(先复制模板)
      cp mapred-site.xml.template mapred-site.xml mapreduce.framework.name yarn
    • yarn-site.xml yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
  • 创建数据目录并赋权
    • mkdir -p /opt/hadoop/data/{ namenode,datanode}
      chown -R hadoop:hadoop /opt/hadoop
  • 格式化 NameNode 并启动
    • 切换到 hadoop 用户:su - hadoop
    • hdfs namenode -format
    • start-dfs.sh & & start-yarn.sh
  • 验证
    • jps 应看到:NameNode、DataNode、ResourceManager、NodeManager
    • Web UI:
      HDFS NameNode:http://localhost:9870
      YARN ResourceManager:http://localhost:8088
      如为虚拟机桥接或 NAT 端口转发,请将 localhost 替换为宿主机可访问的 IP

五 扩展为三节点集群

  • 克隆虚拟机
    • 以“模板机”为基准克隆出 hadoop-slave1/2,启动后分别修改:
      /etc/sysconfig/network-scripts/ifcfg-ens33 的 IPADDR
      hostnamectl set-hostname hadoop-slave1(或 slave2)
  • 配置 SSH 免密登录(主节点执行)
    • su - hadoop
    • ssh-keygen -t rsa -P “”
      cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys
    • 分发公钥到所有节点(含本机):
      ssh-copy-id hadoop@hadoop-master
      ssh-copy-id hadoop@hadoop-slave1
      ssh-copy-id hadoop@hadoop-slave2
  • 修改 Hadoop 配置以支持多节点
    • $HADOOP_HOME/etc/hadoop/core-site.xml(保持默认 fs.defaultFS 指向主节点)
    • $HADOOP_HOME/etc/hadoop/hdfs-site.xml
      dfs.replication2
    • $HADOOP_HOME/etc/hadoop/workers(老版本为 slaves)
      hadoop-slave1
      hadoop-slave2
    • 同步配置到所有节点:
      scp -r $HADOOP_HOME/etc/hadoop hadoop@hadoop-slave1:$HADOOP_HOME/etc/
      scp -r $HADOOP_HOME/etc/hadoop hadoop@hadoop-slave2:$HADOOP_HOME/etc/
  • 启动集群
    • 仅在主节点执行:
      hdfs namenode -format(首次)
      start-dfs.sh & & start-yarn.sh
    • 在各节点用 jps 检查进程:
      主节点应有 NameNode、ResourceManager;从节点应有 DataNode、NodeManager
  • 访问与验证
    • NameNode UI:http://hadoop-master:9870(查看 Live Nodes 是否为 2)
    • YARN UI:http://hadoop-master:8088

六 常见问题与排错要点

  • SSH 免密失败:检查 ~/.ssh 目录权限为 700authorized_keys600;确认 hadoop 用户在各节点 UID/GID 一致或正确授权。
  • 端口访问不通:确认 firewalld/SELinux 已关闭;桥接/NAT 下使用主机 IP访问;必要时在宿主机做端口转发(如 9870/8088)。
  • DataNode 未注册:检查 workers/slaves 配置、各节点 dfs.datanode.data.dir 路径权限、以及 /etc/hosts 一致性。
  • 格式化异常:多次格式化会导致 ClusterID 不一致,删除 data/namenode/current/VERSION 后重跑格式化,或统一 dfs.namenode.name.dir 数据目录再启动。
  • Java/Hadoop 路径错误:核对 hadoop-env.shJAVA_HOMEHADOOP_HOME,以及环境变量是否生效(echo $JAVA_HOME、$HADOOP_HOME)。

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


若转载请注明出处: CentOS Hadoop虚拟机环境怎么搭建
本文地址: https://pptw.com/jishu/754270.html
SQL Server在CentOS的备份恢复 CentOS Hadoop与Windows如何互操作

游客 回复需填写必要信息