Apache YARN 3.5 介绍与选型指南
Apache YARN 3.5 介绍与选型指南:官方资料溯源的资源调度架构(ResourceManager/NodeManager/ApplicationMaster/Container)、调度器与队列、多计算框架承载能力、随 Hadoop 3.5.0(2026-04-02 GA)发行的单机启动流程与适用限制,以及与 Kubernetes、Apache Mesos、Slurm 的量化选型对比(2026-10-19 实查,未做本地安装实测)。
Apache YARN 3.5 介绍与选型指南
目标:基于官方公开资料溯源(hadoop.apache.org 官网与发行页、Apache Hadoop 官方文档、apache/hadoop 官方仓库)梳理 YARN 的定位、架构、功能与同类资源调度系统选型对比,未做本地安装实测;版本号、日期与 stars 均标注来源与查询日期 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(Apache Hadoop 官网 releases 页、官方文档 hadoop.apache.org/docs、GitHub 官方仓库 apache/hadoop),本文不做本地安装与运行实测。
- 版本口径说明:YARN 没有独立发行物,版本随 Apache Hadoop 一起发布。官方 releases 页当前标注 Latest Stable 为 Hadoop 3.5.0,因此本文以「YARN 3.5(随 Hadoop 3.5.0)」为介绍基准。
1.2 版本依据表
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新稳定线 | Hadoop 3.5.0(2026-04-02 发布),含 YARN 3.5 | hadoop.apache.org/releases.html |
| 次新稳定线 | Hadoop 3.4.3(2026-02-24 发布) | hadoop.apache.org/releases.html |
| 上一代补丁线 | Hadoop 3.4.2(2025-08-29)、3.4.1(2024-10-18)、3.4.0(2024-03-17) | hadoop.apache.org/releases.html |
| 代码仓库 | apache/hadoop(15694 stars,Apache-2.0,2026-10-19 实查仍在活跃提交) | github.com/apache/hadoop |
| 开源许可 | Apache License 2.0 | 仓库 LICENSE |
| 发行节奏参考 | 3.4 系自 2024-03 至 2026-02 发布 4 个 minor/patch;3.5.0 于 2026-04 接棒 | hadoop.apache.org/releases.html |
1.3 官方来源清单
二、软件概述
本文介绍的是 Apache Hadoop YARN 3.5(随 Hadoop 3.5.0 发行,2026-04-02 GA)。
YARN(Yet Another Resource Negotiator)是 Hadoop 的资源管理与作业调度层,把集群的 CPU、内存等资源抽象为 Container 统一分配,让 MapReduce、Spark、Flink、Tez 等计算框架共享同一套集群资源。它于 Hadoop 2 时代引入,将「资源管理」与「计算模型」解耦,是经典 Hadoop 数据平台(HDFS + YARN + 计算框架)的调度中枢。YARN 与 Hadoop 同以 Apache License 2.0 发布,由 Apache 软件基金会管理,Hadoop 仓库在 GitHub 上拥有 15694 stars(2026-10-19 实查)。
三、核心架构
3.1 四类角色
- ResourceManager(RM):全局资源调度者,负责整个集群的资源分配与调度决策;可配置 HA(主备自动切换)。
- NodeManager(NM):单节点代理,管理本节点 Container 的生命周期、资源隔离与状态上报。
- ApplicationMaster(AM):每应用一个,负责向 RM 申请资源、与 NM 协作启动并监控任务(如 MapReduce AM、Spark AM)。
- Container:资源的抽象载体(vcores + 内存),是调度与隔离的基本单位。
3.2 调度器与队列
YARN 内置三类调度器:FIFO、Capacity Scheduler(按队列容量/弹性共享,生产最常用)与 Fair Scheduler(按公平份额分配)。队列体系支持层级队列、ACL、资源上下限与抢占等策略(官方 YARN 文档)。调度决策以队列与应用为粒度,支持 Label(节点分区)等扩展。
3.3 与 Hadoop 生态的关系
YARN 运行在 HDFS 之上的计算资源平面:作业输入/输出通常落在 HDFS;RM 提供 REST API 与 Web UI(默认 8088 端口);日志聚合后由 Timeline Service(v2)提供应用历史与指标查询。本站对 YARN 3.3.6 的参数体系有逐项拆解,可参考《Apache YARN 配置参数详解》;Hadoop 侧配置可参考《Apache Hadoop 配置文件详解》(https://www.quzuo.net/document/MTManJnT8fgy )。
四、功能特性
- 多框架承载:MapReduce、Spark、Flink、Tez 等均以 YARN 应用形式运行,一个集群多负载混部(官方 YARN 文档)。
- 队列化资源治理:Capacity/Fair 调度器按队列做配额、优先级与 ACL 治理,适合多团队共享集群。
- 高可用与 federation:RM HA(基于 ZooKeeper)与 YARN Federation(多 RM 联邦扩展到数万节点)为官方能力(YARN 文档)。
- 资源模型扩展:除内存/CPU 外支持自定义资源类型(GPU 等)与 opportunity container(机会式调度)等特性(官方特性页)。
- 3.5 系列状态:3.5.0 于 2026-04-02 GA,属于当前官方标注的 Latest Stable;3.4.3(2026-02-24)作为上一稳定线仍在维护窗口内,用户可按框架兼容矩阵选择(hadoop.apache.org/releases.html 实查)。
五、快速上手
以下步骤转述自官方 SingleCluster 文档(https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/SingleCluster.html ),本文不做本地实测。
- 准备:安装 JDK 并设置
JAVA_HOME,解压 Hadoop 3.5.0 发行包,配置HADOOP_HOME。 - 启动 HDFS(YARN 作业通常依赖):
bin/hdfs namenode -format
sbin/start-dfs.sh
- 启动 YARN:
sbin/start-yarn.sh
- 验证:浏览器访问 ResourceManager UI(
http://localhost:8088),或执行官方文档给出的节点查看命令确认 NodeManager 注册成功。
yarn node -list
- 提交示例作业:官方 SingleCluster 文档以
hadoop-mapreduce-examples中的 wordcount(输入/输出落在 HDFS)演示 YARN 上运行 MapReduce 应用的完整闭环。
本站另有从零安装与 Docker Compose 部署的实测文档,可对照练习。
六、适用场景与限制
6.1 适用场景
- 已有 HDFS 数据平台的批处理/混部集群:MapReduce、Spark、Flink 统一排队治理。
- 多团队共享的数据平台:队列配额、ACL、审计集中在大数据调度层。
- 需要将既有 Hadoop 作业平移且保留 Java 生态兼容性的存量环境。
6.2 限制与注意事项
- 部署与运维重量:依赖 HDFS/JDK/ZooKeeper 等组件,集群起步成本高,不适合纯轻量场景。
- 版本联动:YARN 无独立版本,升级调度器行为需整体升级 Hadoop,需对照各计算框架的兼容矩阵。
- 容器生态弱于 K8s:YARN 不提供 K8s 级别的应用编排与镜像化交付体验;新型云原生负载多直接上 K8s。
- 相邻项目演进:同类老牌调度器 Apache Mesos 已多年无新版发行(详见对比表),新建 Hadoop 之外的调度平台一般不再考虑它。
七、同类选型对比
7.1 候选概览
| 系统 | 定位 | 开源许可 |
|---|---|---|
| Apache YARN 3.5 | Hadoop 生态大数据资源调度层 | Apache-2.0 |
| Kubernetes 1.37 | 容器编排与通用集群资源调度 | Apache-2.0 |
| Apache Mesos 1.11 | 数据中心两级调度(历史项目) | Apache-2.0 |
| Slurm 26.05 | HPC 高性能计算作业调度 | GNU GPL(含 OpenSSL 例外) |
7.2 量化对比(2026-10-19 实查)
| 维度 | YARN 3.5(随 Hadoop 3.5.0) | Kubernetes 1.37 | Apache Mesos 1.11 | Slurm 26.05 |
|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | Apache-2.0 | GPL(OpenSSL 例外) |
| GitHub stars | 15694(apache/hadoop) | 128440(kubernetes/kubernetes) | 5366(apache/mesos) | 4451(SchedMD/slurm) |
| 最近发版 | 3.5.0(2026-04-02);3.4.3(2026-02-24) | v1.37.1(2026-09-23) | 1.11.0(2020-11-24,此后无 GA 发行) | 26.05.5(2026-10-13) |
| 版本节奏 | 大版本约一年级,补丁按需 | 季度 minor + 周期补丁,节奏最快 | 基本停滞 | 半年度版本 + 补丁(26.05 线) |
| 调度模型 | 队列化容量/公平调度,AM 两级调度 | 声明式 Pod 调度 + 控制器生态 | Framework 两级调度 | 分区/节点批作业调度 |
| 典型负载 | Hadoop/Spark/Flink 大数据作业 | 云原生微服务与 AI/数据平台 | 存量 Mesos 集群 | HPC/MPI/科学计算 |
(stars 与发版时间取自各项目 GitHub Releases/API 与 hadoop.apache.org/releases.html,2026-10-19 实查;许可见各自仓库 LICENSE。)
7.3 选型建议
数据已在 HDFS、负载以 Spark/Flink/MapReduce 为主且需要多团队队列治理,YARN 仍是原生阻力最小的选择;云原生方向的新平台优先 Kubernetes,其调度生态(批处理调度器、AI 训练框架集成)远比 YARN 活跃;HPC/科学计算选 Slurm,版本与社区都更健康;除非维护存量系统,不建议在 2026 年新建 Mesos 平台——其最后 GA 发行停留在 2020 年 11 月。YARN 与 K8s 的深度选型对照,可延伸阅读本站《Apache Mesos 1.11.0 介绍与选型指南》(https://www.quzuo.net/document/pL0HFtQwIC5h )中对资源调度代际的讨论。
八、参考链接
- Apache Hadoop 发行页:https://hadoop.apache.org/releases.html
- YARN 官方文档:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/
- YARN 单机集群指南:https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/SingleCluster.html
- 源码仓库:https://github.com/apache/hadoop
- Kubernetes 仓库:https://github.com/kubernetes/kubernetes
- Apache Mesos 仓库:https://github.com/apache/mesos
- Slurm 仓库:https://github.com/SchedMD/slurm