CentOS7 全新安装 Hadoop3.3.4 伪分布式超详细零基础教程

CentOS7 全新安装 Hadoop3.3.4 伪分布式超详细零基础教程

前言(零基础必看)

本文针对完全没有计算机基础、第一次装虚拟机、第一次搭Hadoop的新手撰写。

逻辑公理:虚拟机配置网络→下载YUM源、下载JDK→配置环境→下载Hadoop与相关文件配置

环境:VMware虚拟机 + 全新纯净CentOS7最小化安装(4G以上) + Hadoop3.3.4伪分布式

特点:步骤零跳跃、每条命令带解释、所有报错提前规避、踩坑全覆盖、可直接交作业/实训报告。

第一章 装机第一步:配置网卡、打通外网(一切安装操作的前提)

1.1 查看网卡信息

查看网卡信息(包括网卡名称与地址)

ip addr

这里查看到我的网卡名称是ens33,网卡也有正常的ip地址

image-20260920141854529

1.2 验证网络是否通透

# 查看是否获取到IP(有192.168.x.x即为正常)
ip a

# 测试外网连通
ping www.baidu.com -c 4

能 ping 通百度 = 网络配置彻底成功,可以开始换源、装软件

image-20260920142109500

1.3解决:ping外网报错(可选)

需要编辑网卡ens33(这里ens33是你根据电脑网卡名称来的)配置文件

 sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
DNS1=114.114.114.114
DNS2=223.5.5.5

image-20260920142740437

image-20260920142625130

✅ 新手逐行解释:

  • ONBOOT=yes:开机自动打开网卡(解决断网根本问题)

  • BOOTPROTO=dhcp:自动获取IP,新手不用手动配IP

  • (可选)DNS1/DNS2:公共DNS,让虚拟机可以解析网址、下载文件

编辑完成后,保存退出:Ctrl+X → yes→回车。并通过以下命令重启网卡

systemctl restart network

image-20260920143701531

1.4 解决:network.service 启动失败报错(可选)

新手执行重启网络会报错:network.service failed

原因:CentOS7 两个网络服务冲突,必须关掉旧服务,用新服务

# 关闭旧网络服务并禁用开机启动
systemctl stop network
systemctl disable network

# 开启新网络管理服务(兼容CentOS7)
systemctl start NetworkManager
systemctl enable NetworkManager

# 重载网卡配置、生效网络
nmcli connection reload
nmcli connection up ens33

第二章 网络通后:配置阿里云YUM源(解决下载慢、下载失败)

2.1 新手必懂:为什么要换源?

系统默认是国外源,速度极慢、经常超时报错。换成阿里云国内源,下载软件秒成功。

2.2 YUM源完整替换步骤(零基础版)

# 进入源配置目录
cd /etc/yum.repos.d/

# 新建备份文件夹,把系统默认源全部备份(防止改错无法恢复)
mkdir backup
mv *.repo backup/

# 下载阿里云CentOS7官方源文件
wget -O CentOS-Base.repo  https://mirrors.aliyun.com/repo/Centos-7.repo

# 清理旧缓存、生成新缓存
yum clean all
yum makecache

# 列出启用的仓库(核对是否为镜像网站)
yum repolist

# 更新软件
yum update -y

无报错、正常加载镜像 = YUM源配置成功

image-20260920145137851

第三章 系统环境预处理与用户配置(Hadoop必须提前配置)

3.1 关闭防火墙

防火墙会拦截Hadoop端口,导致集群启动失败、网页打不开,学习环境直接关闭。

#关闭防火墙
systemctl stop firewalld

#开机后自动关闭防火墙
systemctl disable firewalld

image-20260920145503532

3.2 关闭SELinux(必关,否则集群报错)

setenforce 0
nano /etc/selinux/config

image-20260920145647365

修改:SELINUX=enforcingSELINUX=disabled 保存退出

image-20260920145552793

3.3 安装必备工具包(后续所有操作依赖)

yum install -y wget lrzsz net-tools 

工具作用:

  • wget:下载JDK、Hadoop

  • lrzsz:rz上传文件(虚拟机没网也能传包)

  • net-tools:ifconfig等网络命令

    我这里安装过了

    image-20260920145746899

3.4创建hadoop专用管理员

# 创建用户
useradd hadoop

# 设置密码
passwd hadoop

# 赋予sudo权限
usermod -aG wheel hadoop

# 切换用户
su - hadoop

3.5 配置SSH免密登录(Hadoop启动核心!不做必卡死)

Hadoop启动脚本需要免密登录本机,有密码会直接启动失败。

# 开机自启ssh
systemctl start sshd
systemctl enable sshd

# 生成免密密钥
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

# 写入授权文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

# 必须设置权限!权限错免密失效
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

# 测试:直接登录、无需密码即为成功(第一次要选择yes)
ssh localhost
# 退出测试
exit

image-20260920145924133

image-20260920150145472

第四章 JDK8 安装与环境变量配置(Hadoop唯一兼容版本)

4.1 下载JDK8(华为云镜像)

注意:这里下载压缩文件的路径就是下载时所在的路径,我这里切换到/root这个路径,下载的压缩文件就是在这个路径

cd /root
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

image-20260920150238418

✅ 若下载失败:Windows浏览器打开链接下载,rz上传虚拟机

4.2 解压并规范目录

注意:这里要记得解压文件的存储路径,后面配置环境变量要用我这里为了方便文件就放在了/usr/local/jdk下面

tar -zxvf jdk-8u202-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_202 /usr/local/jdk

image-20260920150807445

4.3 配置全局环境变量

nano /etc/profile

注意:这里的文件路径千万不要出错,还有这里的Hadoop还没有安装,可以根据后面安装的实际路径来配置或修改

文件末尾追加:

# JDK全局环境
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib

# Hadoop全局环境
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

# 系统全局PATH
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

image-20260920151238346

生效配置(每次改完必须执行

source /etc/profile

# 验证java是否真的安装与环境变量配置完成(正常会弹出JDK的版本)
java -version

image-20260920151426751

第五章 Hadoop3.3.4 安装与目录配置

5.1 下载Hadoop安装包

cd /root
wget https://repo.huaweicloud.com/apache/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz

5.3 解压部署

注意:这里解压缩后文件的路径要和上面环境变量配置的一致,不同则选其一修改,让其一致这里我的路径为/usr/local/hadoop

tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local/
mv /usr/local/hadoop-3.3.4 /usr/local/hadoop

# 把hadoop目录权限交给hadoop用户
chown -R hadoop:hadoop $HADOOP_HOME

#配置该目录的执行权限
chmod -R 755 /usr/local/hadoop

5.3 文件找不到解决方案(可选)

切换目录后找不到文件,执行全盘搜索:

find / -name "hadoop-3.3.4.tar.gz"
find / -name "jdk-8u202-linux-x64.tar.gz"

5.4 报错解决:hadoop: command not found(可选)

原因:新开终端不会自动加载环境变量

解决:每次开机/新开终端执行 source /etc/profile

验证:hadoop version

第六章 Hadoop五大核心配置文件(3.3.4版)

6.1 hadoop-env.sh

nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh

末尾添加:

export JAVA_HOME=/usr/local/jdk

image-20260920152340663

6.2 core-site.xml

nano $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>

image-20260920152426400

6.3 hdfs-site.xml

nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.secondary.http.address</name>
        <value>0.0.0.0:9868</value>
    </property>
</configuration>

image-20260920152528548

6.4 yarn-site.xml

nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
	<name>yarn.resourcemanager.hostname</name>
        <value>localhost</value>
    </property>
    <!-- 客户端连接RM的RPC地址,这里写localhost,不要写0.0.0.0 -->
    <property>
	<name>yarn.resourcemanager.address</name>
        <value>localhost:8032</value>
    </property>
    <!-- WebUI网页监听,允许外部访问,写0.0.0.0:8088 -->
    <property>
	<name>yarn.resourcemanager.webapp.address</name>
        <value>0.0.0.0:8088</value>
    </property>
</configuration>

image-20260920164051920

6.5 mapred-site.xml(解决MRAppMaster报错核心文件

❗ Hadoop3.3.4默认缺配置,不写这段运行WordCount必报错、必无output输出

nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
    </property>
</configuration>

image-20260920152957992

第七章 集群初始化、启动、验证

7.1 格式化HDFS(仅第一次执行!切勿重复)

hdfs namenode -format

7.2 启动集群

start-dfs.sh
start-yarn.sh

image-20260920161144017

7.3 查看进程(验证成功标准)

jps

五大进程:NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager

image-20260920155815803

7.4 网页访问

HDFS:http://虚拟机IP:9870

image-20260920155902386

YARN:http://虚拟机IP:8088

image-20260920161107232

第八章 WordCount测试 + 全部报错终极解决

8.1 完整测试命令

hdfs dfs -rm -r /output
hdfs dfs -mkdir -p /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar wordcount /input /output
hdfs dfs -ls /output
hdfs dfs -cat /output/part-r-00000

image-20260920172402119

image-20260920172157672

# 关闭集群
stop-dfs.sh
stop-yarn.sh

8.2 全流程报错汇总(零基础专属排错手册)

报错1:Name or service not known 域名解析失败

原因:未配置DNS、网卡未开机自启 | 解决:配置ens33网卡 ONBOOT=yes + DNS

报错2:Network is unreachable 网络不可达

原因:双网络服务冲突 | 解决:禁用network,使用NetworkManager

报错3:hadoop: command not found

原因:环境变量未手动生效 | 解决:source /etc/profile

报错4:MRAppMaster 类找不到、任务FAILED

原因:Hadoop3.x缺少mapred环境变量 | 解决:补全mapred-site.xml配置并重启集群

报错5:/output No such file or directory

原因:MR任务运行失败无输出 | 解决:修复上述报错后重跑任务

报错6Attempting to operate on hdfs namenode as root

原因:以root用户运行集群启动命令

报错7:localhost: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

原因:SSH 免密登录没有配置给 hadoop 用户

报错8:Call From localhost/127.0.0.1 to localhost:8032 failed Connection refused

原因:

  1. 虚拟机内存不足,ResourceManager 内存溢出,进程自动崩溃退出(最常见,要4G以上内存);
  2. ResourceManager 异常终止,RPC 8032 端口不再监听。 解决方案:
  3. jps 确认 RM 进程是否存在;查看 resourcemanager 日志定位崩溃原因;
  4. stop-yarn.sh + kill 残留进程,清理 pid 文件,重新 start-yarn.sh;
  5. 虚拟机内存小于 2G 时,修改 yarn-site.xml 调低 YARN 容器内存限制;
  6. 确认ss -tlnp | grep 8032端口正常监听后,重新提交 WordCount 任务。

第九章 最终成功判定(小白验收标准)

1. 虚拟机可正常上网、ping通百度

2. YUM源正常、工具包齐全

3. SSH免密登录localhost成功

4. JDK、Hadoop环境变量生效,版本查询正常

5. jps五大进程全部在线

6. WordCount任务成功执行,正常输出结果

posted @ 2026-09-20 17:44  新手打怪兽  阅读(5)  评论(0)    收藏  举报