![大数据:从基础理论到最佳实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/123/26944123/b_26944123.jpg)
4.1 YARN概述
Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是从Hadoop 0.23进化来的一种新的资源管理和应用调度框架。基于YARN,可以运行多种类型的应用程序,例如MapReduce、Spark、Storm等。YARN不再具体管理应用,资源管理和应用管理是两个低耦合的模块。
YARN从某种意义上来说,是一个云操作系统(Cloud OS)。基于该操作系统之上,程序员可以开发多种应用程序,例如批处理MapReduce程序、Spark程序以及流式作业Storm程序等。这些应用可以同时利用Hadoop集群的数据资源和计算资源。此外,还可以利用YARN的资源管理器,提供新的应用管理器实现。
YARN的产生是对Hadoop1的优化,这次优化是Hadoop框架发展以来最大的一次重构,Hadoop2将Jobtracter的资源管理和任务管理拆分成两个独立模块,成为独立的YARN和各种ApplicationManager。
概括地说,YARN弥补了Hadoop1中的两个主要缺陷,这是产生YARN的原动力。
(1)不支持多租赁。集群的计算资源只支持MR程序,不能支持Storm、Spark等作业。
(2)规模限制,集群规模超过4000台时,会出现不可预测性,计算能力非近线性扩展。
YARN的分布式系统,包含两个守护进程:资源管理器(ResourceManager, RM)、节点管理器(NodeManager, NM)。另外,很重要的进程是应用管理者(ApplicationManager, AM),当一个应用提交后,RM负责启动该任务对应类型的AM,应用的执行由AM管理。可以简单地认为,AM进程的生命周期为应用的运行时间。YARN的工作原理如图4-1所示。
![](https://epubservercos.yuewen.com/1068C1/15367255604226906/epubprivate/OEBPS/Images/figure_0092_0001.jpg?sign=1739285232-PxornOCJTgYbp3bI5jFVwaLnxyza3YpS-0-f0cbbeab3ff57b8e887074ac2faf6918)
图4-1 YARN的工作原理