YARN:Yet Another Resource Negotiator
核心概念:资源调度系统
功能:
负责整个集群资源的管理和调度。
为上层应用提供统一的资源管理和调度。
多框架资源统一调度
YARN 架构:
1)ResourceManager: RM
整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理和调度
处理客户端的请求: 提交一个作业、杀死一个作业
监控NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉AM来如何进行处理
2) NodeManager: NM
整个集群中有多个,负责自己本身节点资源管理和使用
定时向RM汇报本节点的资源使用情况
接收并处理来自RM的各种命令:启动Container
处理来自AM的命令
单个节点的资源管理
3) ApplicationMaster: AM
每个应用程序对应一个:MR、Spark,负责应用程序的管理
为应用程序向RM申请资源(core、memory),分配给内部task
需要与NM通信:启动/停止task,task是运行在container里面,AM也是运行在container里面
4) Container
封装了CPU、Memory等资源的一个容器
是一个任务运行环境的抽象
5) Client
提交作业
查询作业的运行进度
杀死作业
总流程:
client---发送请求到---->resouceManager--->任意一个nodeManager启动一个Application Master
------>Application Master 确认作业----向resourcesManager申请资源---->通知对应的nodemanager
------>在nodemanager上启动一些container来运行Task