Yarn

一、yarn中的角色:

ResourceManager:集群计算资源的分配启动ApplicationMaster监控NodeManager的状态

NodeManager:启动和管理节点中的容器

ApplicationMaster:运行mapreduce任务,每个job有一个,分配map在哪里运行,reduce在哪里运行。

二、yarn 中 MapReduce 的 job的运行流程:

工作机制详解

(0)Mr程序提交到客户端所在的节点,Yarnrunner向Resourcemanager申请一个Application。

(2)rm将该应用程序的资源路径返回给yarnrunner

(3)该程序将运行所需资源提交到HDFS上

(4)程序资源提交完毕后,申请运行mrAppMaster

(5)RM将用户的请求初始化成一个task

(6)其中一个NodeManager领取到task任务。

(7)该NodeManager创建容器Container,并产生MRAppmaster

(8)Container从HDFS上拷贝资源到本地

(9)MRAppmaster向RM 申请运行maptask容器

(10)RM将运行maptask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。

(11)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动maptask,maptask对数据分区排序。

(12)MRAppmaster向RM申请2个容器,运行reduce task。

(13)reduce task向maptask获取相应分区的数据。

(14)程序运行完毕后,MR会向RM注销自己。

https://www.cnblogs.com/frankdeng/p/9311474.html

1、将MR程序提交到客户端所在的节点,运行hadoop jar命令后,会产生RunJar进程,客户端clinet会向ResourceManager申请执行一个job。

2、ResourceManager收到请求后,会向clinet返回job的提交路径和jobid。

3、clinet会将job提交到相应的共享文件路径下 /yarn-staging/jobid。

4、clinet向ResourceManager汇报提交结果,并申请运行MRAppMaster。

5、ResourceManager将这个job加入到任务队列中。

6、NodeManager通过与ResourceManager的心跳连接,从任务队列中获取新的任务。

7、ResourceManager使用资源调度器为NodeManager分配资源容器。

8、ResourceManager在容器中启动MRAppMaster进程。

9、由MRAppMaster来分配在哪些NodeManager上运行map,哪些运行reduce任务。

10、运行map、reduce任务的NodeManager从共享文件系统中获取job相关资源,包括jar文件和配置文件等。然后运行map和reduce任务。

11、job任务完成后,MRAppMaster向ResourceManager注销自己,让其回收资源。

三、yarn中的三种资源调度器:

资源调度器https://blog.csdn.net/qq_21383435/article/details/82659947

1、FIFO调度器:

  先进先出,同一时间队列中只有一个任务在执行。

 2、容量调度器:

  多队列;每个队列内部先进先出,同一时间队列中只有一个任务在执行。队列的并行度为队列的个数。

 3、公平调度器:

  多队列;每个队列内部按照缺额大小分配资源启动任务,同一时间队列中有多个任务执行。队列的并行度大于等于队列的个数。

原文地址:https://www.cnblogs.com/guoyu1/p/12017868.html