CentOS Hadoop虚拟机环境怎么搭建
导读: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
- wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
四 配置 Hadoop(单机伪分布式,快速可用)
- 配置 Hadoop 环境脚本
- vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
添加:export JAVA_HOME=/opt/jdk1.8.0_XXX
- vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
- 核心配置文件($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
- mkdir -p /opt/hadoop/data/{
namenode,datanode}
- 格式化 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)
- 以“模板机”为基准克隆出 hadoop-slave1/2,启动后分别修改:
- 配置 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 目录权限为 700、authorized_keys 为 600;确认 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.sh 的 JAVA_HOME 与 HADOOP_HOME,以及环境变量是否生效(echo $JAVA_HOME、$HADOOP_HOME)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Hadoop虚拟机环境怎么搭建
本文地址: https://pptw.com/jishu/754270.html
