一、Yarn架构图
图片来自官网
二、Yarn架构的主要组件
1、ResourceManager
这是一个全局性组件,负责整个集群资源管理。其两个主要的组件分别为Scheduler(调度器)和 ApplicationsManager(应用管理器)。
Scheduler
调度器Scheduler是支持可插拔的,用于根据不同的队列、应用等来划分集群资源,如 CapacityScheduler 按照容量调度、FairScheduler 公平调度。
ApplicationsManager
其作用是负责接收应用的提交请求、然后协商第一个container用于运行该应用的ApplicationMaster,并且在ApplicationMaster失败时负责重启该ApplicationMaster。
2、ApplicationMaster
每个应用都有一个 ApplicationMaster,这个 ApplicationMaster 负责向 Scheduler 请求资源,运行这个应用需要多少资源就向 Scheduler 请求多少资源。
请求资源到位以后,协商NodeManager启动对应的container,并调度任务执行,监控任务运行状态,通过心跳定时向RM报告任务信息。
3、NodeManager
每台机器对应一个NodeManager,对 container 负责,监控所在机器上的资源使用率情况,包括CPU、内存、磁盘、带宽等,并通过心跳定时将这些信息报告给ResourceManager。RM需要知道这些信息来进行资源分配、协调。
资源单位:contai