YARN是Hadoop为了提供计算节点Master(JT)的扩展性,同时为了支持多计算模型和提高资源的细粒度调度而引入的全新一代分布式调度框架。
其可以支持MapReduce、Tez、Spark、Storm、Imlala、Open MPI等计算引擎。
YARN主要由ResourceManager(RM,资源管理)、NodeManager(NM,节点管理)、ApplicationMaster(AM、主应用程序)、Container(容器)四部分组成。
其中最为核心的是ResourceManager,它作为全局的资源管理,负责整个系统的资源管理和分配,同时接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的资源策略分配给各个应用程序(Application Manager),其内部维护了各个应用程序的ApplicationMaster信息、NodeManager信息以及资源使用信息等。
YARN设计了一套Active/Standby模式的ResourceManager HA框架,在运行期间会有多个ResourceManager并存,并且其中只有一个ResourceManager处于Active状态,其他则处于Standby状态,当前Active节点无法正常工作时,其余处于Standby状态的节点则会通过竞争产生新的Active节点。