1 YARN简介
为克服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等。
2 YARN的设计思想(重点)
2.1 基本思想
yarn的基本思想是将资源管理和作业调度/监视功能划分为单独的守护进程。其思想是拥有⼀个全局ResourceManager (RM),以及每个应⽤程序拥有⼀个 ApplicationMaster (AM)。应⽤程序可以是单个作业,也可以是⼀组作业。
⼀个ResourceManager和多个NodeManager构成了yarn资源管理框架。他们是 yarn启动后⻓期运⾏的守护进程,来提供核⼼服务。
ResourceManager,是在系统中的所有应⽤程序之间仲裁资源的最终权威,即管理整个 集群上的所有资源分配,内部含有⼀个Scheduler(资源调度器)
NodeManager,是每台机器的资源管理器,也就是单个节点的管理者,负责启动和监视 容器(container)资源使⽤情况,并向ResourceManager及其 Scheduler报告使⽤情况
container:即集群上的可使⽤资源,包含cpu、内存、磁盘、⽹络等
ApplicationMaster(简称AM)实际上是框架的特定的库,每启动⼀个应⽤程序,都会启动⼀个AM,它的任务是与ResourceManager协商资源,并与NodeManager⼀起执⾏和监视任务
扩展)YARN与MapReduce1的⽐较</