- 大数据:从基础理论到最佳实践
- 祁伟
- 527字
- 2021-01-07 18:48:02
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所示。
图4-1 YARN的工作原理