YARN 深度解析专栏导览

专栏定位

本专栏是 HDFS 深度解析 专栏的姊妹篇。HDFS 解决了”数据存在哪里”的问题,YARN 解决的是”计算在哪里跑、用多少资源”的问题。两者共同构成了 Hadoop 生态的基础设施层。

本专栏的定位是工程师视角的 YARN 底层原理解析:不停留在”ResourceManager 负责资源管理”这样的表层描述,而是深入到资源模型的设计权衡、调度器的算法细节、Container 启动的 RPC 调用链、CGroups 资源隔离的内核机制。每一个设计决策背后的”为什么”,是本专栏最核心的关注点。


文章列表

编号文章标题核心主题
0101 YARN 的诞生——从 MRv1 到资源管理与计算分离MRv1 的四大瓶颈、YARN 的设计目标、计算框架无关性
0202 YARN 整体架构全景——ResourceManager、NodeManager 与 ApplicationMaster 三角协作三大核心组件的职责边界、整体交互协议
0303 ResourceManager 深度解析——调度器内核与资源抽象模型Resource 抽象、ResourceRequest、调度器接口设计
0404 Container 生命周期——从资源申请到进程启动的完整调用链AM 申请 Container、NM 启动 Container 的 RPC 全路径
0505 调度器深度解析——Capacity Scheduler 与 Fair Scheduler 的算法内核队列树模型、抢占机制、资源计算算法
0606 ApplicationMaster 机制——以 Spark on YARN 为例AM 的注册、资源谈判、Container 分配策略
0707 YARN 资源隔离——CGroups 与 Linux Container Executor 的工程实现CGroups 集成、LinuxContainerExecutor、CPU/内存隔离
0808 YARN 高可用与故障恢复——ResourceManager HA 与 AM 重试机制RM HA、ZK 状态存储、AM 重启、Container 恢复
0909 YARN 性能调优与生产实践——队列配置、节点标签与调度优化节点标签、GPU 调度、队列调优、生产参数清单

推荐阅读路径

入门路径(理解 YARN 是什么):01 → 02 → 04

深度路径(理解 YARN 怎么工作):01 → 02 → 03 → 05 → 06

运维路径(在生产环境用好 YARN):02 → 07 → 08 → 09

Spark 调优路径(理解 Spark on YARN 的资源行为):03 → 04 → 05 → 06


前置知识

  • Linux CGroups:第 07 篇会深入讲解,但提前了解 CGroups 基本概念有助于理解 Container 资源隔离
  • HDFS 整体架构:YARN 与 HDFS 紧密协作(数据本地性调度),建议先阅读 HDFS 专栏的第 02 篇
  • MapReduce 编程模型:第 01 篇会从 MRv1 的局限出发讲解 YARN 的诞生,了解 MR 基本原理有助于理解演进动机

技术范围说明

本专栏聚焦于 YARN 本身的核心机制,以下内容超出范围不做深入展开:

  • Spark 内部调度机制(DAGScheduler、TaskScheduler):这是 Spark 专栏的主题
  • Flink on YARN 的细节:本专栏在第 06 篇以 Spark on YARN 为主要示例,Flink 只作对比提及
  • Kubernetes 资源调度:Kubernetes 与 YARN 的对比分析在第 09 篇会有简要介绍
  • HDFS 存储机制:详见 HDFS 专栏

关联专栏

专栏持续更新中。如发现错误或有补充建议,欢迎在 Obsidian 的评论中留言。