为克服Hadoop 1.0
中
HDFS
和
MapReduce
存在的各种问题⽽提出的,针对
Hadoop 1.0中的
MapReduce
在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架 YARN
Apache YARN(
Yet another Resource Negotiator
的缩写)是
Hadoop
集群的资源 管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce
等计算程序则相当于运⾏于操作系统之上的应⽤程序
yarn被引⼊
Hadoop2,
最初是为了改善MapReduce的实现,但是因为具有⾜够的通 ⽤性,同样可以⽀持其他的分布式
计算模式,⽐如Spark,Tez
等计算框架。
注意:还有⼀层应⽤是运⾏在
MapReduce
,
Spark
或者
Tez
之上的处理框架,如 Pig,Hive和
Crunch
等。
YARN的设计思想
yarn的基本思想是将资源管理和作业调度
/
监视功能划分为单独的守护进程。其思想是拥有⼀个全局ResourceManager (RM)
,以及每个应⽤程序拥有⼀个ApplicationMaster (AM)。应⽤程序可以是单个作业,也可以是⼀组作业
YARN基本架构
YARN是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM)。
ResourceManager,是在系统中的所有应⽤程序之间仲裁资源的最终权威,即管理整个集群上的所有资源分配,内部含有⼀个Scheduler(资源调度器)
NodeManager
,是每台机器的资源管理器,也就是单个节点的管理者,负责启动和监视容器
(container)
资源使⽤情况,并向
ResourceManager
及其
Scheduler
报告使⽤ 情况
container
:
即集群上的可使⽤资源,包含
cpu
、内存、磁盘、⽹络等
ApplicationMaster
(简称
AM
)实际上是框架的特定的库,每启动⼀个应⽤程序,都会启动⼀个AM
,它的任务是与
ResourceManager
协商资源,并与
NodeManager
⼀起执 ⾏和监视任务