YARN工作原理:
YARN比MapReduce1更具一般性,实际上MapReduce只是YARN应用的一种形式。
相比经典的MapReduce来说,YARN的顶层包括更多的实体:
(1)client客户端。
(2)YARN资源管理器。负责协调集群上计算资源的分配。
(3)YARN节点管理器。负责启动和监视集群中机器上的计算容器。
(4)应用程序master。负责协调运行MapReduce作业的任务。
(5)分布式文件系统。
主要是多了一个容器[一个容器包含了一定的资源(memory 和CPU 和磁盘IO)]的概念。每一个任务都有一个对应的容器,而且只能在该容器中运行。
工作原理:
从图中可以看出YARN运行MapReduce的过程有13个步骤,我们分别来看看:
1、启动一个job。
2、从资源管理器请求一个新的作业ID。
3、检查作业的输出说明并计算作业的输入分片,然后将作业资源复制到HDFS。
4、通过调用资源管理器的submitApplication()方法提交作业。
5、将请求传递给调度器,产生容器。
a、初始化容器。
b、资源管理器在节点管理器的管理下在容器中启动master进程。
6、master进程对作业进行初始化。
7、获取计算出的输入分片,为每个分片创建一个map任务。并创建reduce任务。
8、master为作业向资源管理器请求容器(资源)来运行任务。
9、 a、返回调度器申请的资源列表,
b、master为任务分配容器。master与资源列表中NodeManager管理器通信,NnodeManager为任务设置运行环境,shell脚本启动容器。
10、资源本地化。
11、运行map/reduce任务。
12、Map Task 和 Reduce Task向 MR AM 汇报自己的状态和进度
13、MR ApplicationMaster 向Application Manger注销,并关闭自己。
这样一个YARN运行的MapReduce的原理也就完整了。
转:http://axuebin.com/blog/2016/02/23/hadoop-mapreduce-yarn/?utm_source=tuicool&utm_medium=referral
转:http://blog.itpub.net/30089851/viewspace-2118276/