1. Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序;Yarn是hadoop2.0版本新添加的;
2.YARN基本组成结构:
YARN 主要由ResourceManager、NodeManager、ApplicationMaster和Container 等几个组件构成。
1) Resource Manager:主要由两个组件构成:调度器(Scheduler)和(Applications Manager,ASM);调度器:将系统中的资源分配给各个正在运行的应用程序;应用程序管理器:应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster 运行状态并在失败时重新启动它等。
2) ApplicationMaster:
- 与RM 调度器协商以获取资源(用 Container 表示);
- 将得到的任务进一步分配给内部的任务;
- 与 NM 通信以启动 / 停止任务;
- 监控所有任务运行状态,并在任务运行失败时重新为任务申请资源以重启任务。
3 NodeManager(NM):NM 是每个节点上的资源和任务管理器;
(NM与ApplicationMaster的区别是NM是控制整台机器资源和任务管理,而AM是控制每个应用的资源和任务管理)
4 Container:是YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
3. Yarn的具体工作流程图如下: