第 4 章 · 资源视角:YARN 调度层 章节摘要:数据旅程计算段的每一步都运行在 YARN 的容器里。本章拆解 ResourceManager、NodeManager、AppMaster、Container 四角色的协作时序,深挖 Capacity 与 Fair 两种调度器的队列语义与配置实战,最后覆盖在 YARN 上开发部署应用与标签调度等扩展能力。 学习目标 阅读完本章,你应当能够: 说清一次任务启动经过的四角色握手:申请、分配、启动、汇报; 解释 YARN 把资源管理与作业管理分离的动机(经典 MapReduce 1 的局限); 配置 Capacity Scheduler 的多级队列、容量、ACL 与抢占参数;
章节摘要:数据旅程计算段的每一步都运行在 YARN 的容器里。本章拆解 ResourceManager、NodeManager、AppMaster、Container 四角色的协作时序,深挖 Capacity 与 Fair 两种调度器的队列语义与配置实战,最后覆盖在 YARN 上开发部署应用与标签调度等扩展能力。
阅读完本章,你应当能够:
YARN 的本质是把"集群资源"抽象成可记账、可分配、可回收的商品——容器。
四角色分工、容器的一生、与 MapReduce 1 时代对比引出的分离动机。
心跳式分配协议、Capacity 与 Fair 两种调度器的语义与配置实战、队列选型。
编写 AppMaster 的协议要点、应用提交 CLI、节点标签与资源隔离扩展。
本章从静态到动态再到扩展:
[4.1 角色与容器] ──谁在协作──▶ [4.2 调度策略] ──怎么分配──▶ [4.3 开发与扩展] 架构图与时序 队列语义与配置 协议与标签调度
4.2 是重心:调度器选择与队列规划是平台工程师日常决策频率最高的两项。
带着这个问题读本章:夜批集群上,报表组、算法组、实时组共用一千个节点,报表作业半夜跑、算法作业白天跑、实时作业全天不能断——你把队列怎么切、容量怎么定、抢占开不开?4.2 节的三原则会给出一版答案,但真正的判断依据藏在 4.1 的资源账与你们组织的 SLA 排序里。资源调度没有标准答案,只有"约束条件写清楚之后的推论",本章要给你的正是那套推论工具。