文章目录
- 前言
- 一、Hadoop介绍
-
- 1.1 Hadoop 核心概述
- 1.2 Hadoop 核心组件(3.x 主流架构)
- 二、创建普通用户SSH配置免密登录
-
- 2.1 创建hadoop用户
- 2.2 赋予hadoop用户sudo权限(可选,方便后续操作)
- 2.3 配置映射
- 2.4 切换到hadoop用户,生成公私钥
- 2.5 授权
- 三、Hadoop(HDFS)环境搭建
-
- 3.1 下载并解压
- 3.2 配置环境变量
- 3.3 修改Hadoop配置
- 3.4 关闭防火墙
- 3.5 初始化
- 3.6 启动HDFS
- 3.7 验证是否启动成功
- 四、Hadoop(YARN)环境搭建
-
- 4.1 修改配置
- 4.2 启动服务
- 4.3 验证是否启动成功
- 总结
前言
操作系统环境:Centos 7、Rocky 9 、Almalinux 9、openEuler-25 Hadoop版本:3.4.2
一、Hadoop介绍
1.1 Hadoop 核心概述
1.2 Hadoop 核心组件(3.x 主流架构)
1.HDFS(Hadoop Distributed File System) 分布式文件系统
- 作用:负责海量数据的分布式存储,将大文件切分成固定大小的 “数据块”(默认 128MB),分散存储在集群不同节点,并为每个数据块保留多副本(默认 3 份),保证数据可靠性。
- 核心角色:
- NameNode:管理文件系统的元数据(文件名、块位置、目录结构等),是 “大脑”,单点故障可通过 Standby NameNode 或 QJM 集群容错;
- DataNode:实际存储数据块,定期向 NameNode 汇报心跳和块信息;
- SecondaryNameNode:辅助 NameNode 合并编辑日志,减轻其压力(非热备)。
- 作用:统一管理集群的计算资源(CPU、内存),为各类计算任务(MapReduce/Spark/Flink)分配资源并调度任务执行。
- 核心角色:
- ResourceManager:全局资源调度器,接收集群资源请求,分配资源给应用;
- NodeManager:每个节点的资源管理器,管理本节点的资源,执行具体任务;
- ApplicationMaster:每个应用的 “管家”,负责向 ResourceManager 申请资源、与 NodeManager 通信启动任务。
- 作用:将复杂的计算任务拆解为 “Map(映射)” 和 “Reduce(归约)” 两个阶段,并行处理海量数据。
- 执行流程:
- Map 阶段:将输入数据分片,并行处理,输出键值对;
- Shuffle 阶段:对 Map 输出的键值对排序、分区,传输给 Reduce 节点;
- Reduce 阶段:汇总相同键的数值,输出最终结果。 特点:批处理为主,延迟较高,适合离线大数据计算(如日志分析、数据统计)。
二、创建普通用户SSH配置免密登录
Hadoop 组件之间需要基于 SSH 进行通讯。
2.1 创建hadoop用户
Hadoop 官方不建议用 root 运行集群(安全风险 + 权限混乱),核心思路是创建专属普通用户(如 hadoop),并赋予相关目录权限,全程以该用户操作。
useradd -m hadoop
passwd hadoop # 设置密码(如hadoop123)
2.2 赋予hadoop用户sudo权限(可选,方便后续操作)
echo "hadoop ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
2.3 配置映射
通过root账号配置 ip 地址和主机名映射:
vim /etc/hosts
# 文件末尾增加
192.168.3.129 hadoop001
2.4 切换到hadoop用户,生成公私钥
执行下面命令行生成公匙和私匙:
su – hadoop
ssh-keygen -t rsa # 一路回车,生成密钥
执行命令会提示相关操作,默认按回车就好

2.5 授权
进入 ~/.ssh 目录下,查看生成的公匙和私匙
cd ~/.ssh

将公匙写入到授权文件:
# 写入公匙到授权文件
cat id_rsa.pub >> authorized_keys
# 授权给hadoop001(和localhost是同一台机器,可省略,但建议加)
ssh-copy-id hadoop001
chmod 600 authorized_keys
检查 SELinux / 防火墙:若开启 SELinux,需确保 SSH 目录上下文正确,执行如下命令:
restorecon -R ~/.ssh
验证免密登录是否生效,执行以下命令验证(无需输入密码即表示成功):
ssh hadoop001
若直接进入hadoop001主机的命令行,说明免密登录配置完成。
三、Hadoop(HDFS)环境搭建
3.1 下载并解压
- 清华镜像: https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/
- 阿里镜像: https://mirrors.aliyun.com/apache/hadoop/common/
- 优先选 Apache 官方发布的 “stable” 稳定版,避免 alpha/beta 测试版;
- 若需兼容 CDH/CDP 商用发行版,可对应选择 Cloudera 适配的 Hadoop 版本(如 CDP 7.1 适配 Hadoop 3.1.1)。
在页面中找到目标版本(如 hadoop-3.4.2),点击进入该版本的下载目录;
| hadoop-X.X.X.tar.gz | 核心安装包(二进制版) | hadoop-3.4.2.tar.gz |
| hadoop-X.X.X-src.tar.gz | 源码包(二次开发 / 编译) | hadoop-3.4.2-src.tar.gz |
普通部署仅需下载 二进制版(tar.gz),源码包仅用于定制开发。
# 解压在/usr/local目录下
tar -zxvf hadoop-3.4.2.tar.gz -C /usr/local
3.2 配置环境变量
vim /etc/profile
配置环境变量,添加如下内容:
export HADOOP_HOME=/usr/local/hadoop-3.4.2
export PATH=${HADOOP_HOME}/bin:$PATH
执行 source 命令,使得配置的环境变量立即生效:
source /etc/profile
3.3 修改Hadoop配置
进入 ${HADOOP_HOME}/etc/hadoop/ 目录下,修改以下配置:
# JDK安装路径
export JAVA_HOME=/usr/local/jdk8u402-b06/
<configuration>
<property>
<!–指定 namenode 的 hdfs 协议文件系统的通信地址–>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:8020</value>
</property>
<property>
<!–指定 hadoop 存储临时文件的目录–>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
</configuration>

<configuration>
<property>
<!–由于我们这里搭建是单机版本,所以指定 dfs 的副本系数为 1–>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

hadoop001
3.4 关闭防火墙
不关闭防火墙可能导致无法访问 Hadoop 的 Web UI 界面:
# 查看防火墙状态
sudo firewall-cmd –state
# 关闭防火墙:
sudo systemctl stop firewalld.service
3.5 初始化
第一次启动 Hadoop 时需要进行初始化,进入 ${HADOOP_HOME}/bin/ 目录下,执行以下命令:
cd ${HADOOP_HOME}/bin/
./hdfs namenode -format

3.6 启动HDFS
进入 ${HADOOP_HOME}/sbin/ 目录下,启动 HDFS:
cd ${HADOOP_HOME}/sbin/
./start-dfs.sh

3.7 验证是否启动成功
jps


四、Hadoop(YARN)环境搭建
4.1 修改配置
进入 ${HADOOP_HOME}/etc/hadoop/ 目录下,修改以下配置:
# 如果没有mapred-site.xml,则拷贝一份样例文件后再修改
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2. yarn-site.xml
<configuration>
<property>
<!–配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。–>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

4.2 启动服务
进入 ${HADOOP_HOME}/sbin/ 目录下,启动 YARN:
cd ${HADOOP_HOME}/sbin/
./start-yarn.sh
4.3 验证是否启动成功
jps
2. 方式二:查看 Web UI 界面,访问地址:http://192.168.3.129:8088/,端口号为 8088:

总结
到这里已经完成Hadoop 单机部署,单机部署的核心价值是快速验证 MapReduce 逻辑,适合新手入门;若要处理真实海量数据,需搭建伪分布式 / 完全分布式集群。


