一、Yarn简介
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
二、Yarn基本架构
YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)
ResourceManager # 负责所有应用程序(整个集群)资源分配与管理 以及接收作业的提交;
ApplicationMaster # 负责每一个应用程序的资源分配(资源二次分配)以及监控所有任务的运行状态;
NodeManager # 负责每一个节点的维护;
备注:一个节点上可以运行多个应用程序,一个应用程序可以有多个运行任务
- 每个应用程序一个ApplicationMaster
- 每个从节点一个NodeManager
- 每个任务分配一个Container
- 每个应用程序运行在一个NodeManager上的多个Container上
1.ResourceManager
对于所有的应用程序,ResourceManager 拥有绝对的控制权和对资源的分配权。而每个 ApplicationMaster 则会和 ResourceManager 协商资源,同时和 NodeManager 通信来执行和监控task
ResourceManager 负责整个集群的资源管理和分配,是一个全局的资源管理系统。NodeManager 以心跳的方式向 ResourceManager 汇报资源使用情况(目前主要是 CPU 和内存的使用情况)。
ResourceManager 只接受 NodeManager 的资源回报信息,对于具体的资源处理则交给 NodeManager 自己处理。
Scheduler 根据 application 的请求为其分配资源,不负责 application job 的监