请描述 Apache Hadoop YARN 的整体架构,并说明其核心组件分别承担哪些职责?
考察说明
考查对 YARN 资源管理架构及其核心组件职责的理解。
回答思路
- 【回答框架 1】YARN 采用主从架构,核心是 ResourceManager(RM)与 NodeManager(NM)。RM 负责全局资源管理与调度,NM 负责单节点资源监控与任务执行。
- 【回答框架 2】RM 内部包含 Scheduler 与 ApplicationsManager:Scheduler 仅做资源分配,不跟踪应用状态;ApplicationsManager 接受作业提交、协商容器并监控 ApplicationMaster(AM)失败。
- 【回答框架 3】每个应用启动一个 AM,AM 向 RM 申请资源(容器),并与 NM 协作启动和监控任务。容器是资源分配的基本单位,封装 CPU、内存等。
- 【回答框架 4】客户端提交作业后,RM 分配首个容器启动 AM,AM 再按需申请更多容器执行任务,形成两级调度模型。
- 【回答框架 5】整体设计将资源管理与作业控制分离,提升扩展性与多框架共享能力。
- 【关键点 1】YARN 主从架构由 RM、NM、AM 和容器组成。
- 【关键点 2】RM 负责全局资源调度,NM 负责节点资源管理。
- 【关键点 3】AM 是应用级控制器,向 RM 申请资源并监控任务。
- 【关键点 4】容器是资源隔离与分配的基本单位。
- 【关键点 5】两级调度模型支持多计算框架共存。
- 【易错点 1】不要将 RM 的 Scheduler 与作业状态管理混为一谈,Scheduler 不跟踪应用状态。
- 【易错点 2】容器不等于进程,它只是资源抽象,实际任务进程由 NM 启动。
- 【易错点 3】AM 失败后由 RM 重新启动,但任务状态恢复依赖应用自身机制。