YARN组件概述
更新时间 2026-10-12 11:43:56
最近更新时间: 2026-10-12 11:43:56
本章节介绍YARN服务基础概述。
YARN作为Hadoop的资源管理框架,核心是实现集群资源的统一管理与调度,支持多队列资源隔离、抢占、弹性伸缩,并提供细粒度资源监控,适配各类计算框架(MR、Spark、Flink等)的资源需求。YARN 的 Capacity Scheduler(容量调度器)以其多租户隔离、弹性资源共享和细粒度权限控制等特性,成为企业级大数据平台的首选调度方案。大数据EMR使用的就是Capacity Scheduler。YARN集群整体架构如下:
角色描述如下
| 角色名称 | 描述 |
|---|---|
| Client | YARN Application客户端,用户可以通过客户端向ResourceManager提交任务,查询Application运行状态等。 |
| ResourceManager(RM) | 负责集群中所有资源的统一管理和分配。接收来自各个节点(NodeManager)的资源汇报信息,并根据收集的资源按照一定的策略分配给各个应用程序。 |
| NodeManager(NM) | NodeManager(NM)是YARN中每个节点上的代理,管理Hadoop集群中单个计算节点,包括与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资源使用(内存、CPU等)情况,追踪节点健康状况,管理日志。 |
| ApplicationMaster(AM) | 负责一个Application生命周期内的所有工作。包括:与RM调度器协商以获取资源;将得到的资源进一步分配给内部任务(资源的二次分配);与NM通信以启动/停止任务;监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。 |
| Container | Container是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU。当AM向RM申请资源时,RM为AM返回的资源便是用Container表示。YARN会为每个Task任务分配一个Container,且该任务只能使用该Container中描述的资源。 |