码迷,mamicode.com
首页 > 其他好文 > 详细

图解YARN工作原理

时间:2015-07-06 00:12:21      阅读:429      评论:0      收藏:0      [点我收藏+]

标签:yarn 执行流程

      YARN 即MapReduce V2版本。相比MapReduce V1 它有很多优点: 

       1. 分散了jobTracker 的任务。资源管理任务由资源管理器负责,作业启动、运行和监测任务由分布在集群节点上的应用主题负责。这样大大减缓了MapReduce V1中jobTracker 单点瓶颈和单点风险的问题,大大提高了集群的扩展性和可用性。

       2.在MapReduce V2中ApplicationMaster是一个用户可定制的部分,因此用户可以针对编程模型编写自己的应用主题程序。这样大大扩展了MapReduce V2 的适用范围。

       3.在资源管理上使用Zookper实现故障转移。当资源管理故障时,备用资源管理器将根据保存在ZooKeeper中的集群状态快速启动。MapReduce V2支持应用程序指定检查点。这就能保证应用主题在失败后能迅速根据hdfs上的状态的状态重启。这两个措施大大提高了MapReduce V2的可用性。

       4.集群资源统一组织成资源容器,而不像在MapReduce V1中Map池和Reduce池有所差别。这样只要有任务请求资源,调度器就会将集群中的可用资源分配给请求任务,而无关资源类型。这就大大提高了资源的利用率。

       其实YARN还有很多优点,在这里就不尽兴一一列举。主要说一下YARN的工作流程。


        YARN 具体由哪些部分组成:

        YARN共有ResourceManager、NodeManager、JobHistoryServer、Containers、Application Master、job、Task、Client组成。

        技术分享

         >  Resource Manager: 一个Cluster 只有一个,负责资源调度、资源分配等工作。

          >  JobHistory Server: 负责查询job运行进度及元数据管理。

          >  nodemanager:运行在datanode节点,负责启动Application和对资源的管理。

          >  Containers: Container通过ResourceManager分配。包括容器的cpu、内存等资源。

          >  Application master:通俗来说Application master 相当于包工头,Resource Manager 相当于经理。Resource Manager 首先将任务给Application master,然后Application master 在将Resource manager的指示传达给各个 nodemanager(相当于工人)进行干活儿。每个application只有一个Applicationmaster,运行在node manager节点,Application   master是由Resource manager指派的。

         >  job:一个mapper、一个Reducer或一个进程的输入列表。job也可以叫做Application。

         >  task:一个具体做mapper或Reducer的独立的工作单元。task运行在nodemanager 的Container中。

         >  client:一个提交给Resource manager的一个Application程序。


   已经知道了YARN由哪些工作单元组成,接下来就来说说一个job时如何进行处理的整体流程。

     技术分享

        用户向YARN中提交程序/作业,其中包括Application Master启动、ApplicationMaster的命令及用户程序等;ResourceManager为作业分配第一个Container,并与对应的nodemanager通信,要求它在这个Container中启动改作业的Application master;Applicationmaster首先向Resourcemaster注册,这样用户可以直接通过Resourcemanager查询作业的运行状态,然后它将为各个人物申请资源并监控任务的运行状态,知道运行结束;Application通过RPC请求向Resourcemanager申请和领取资源。

         技术分享         然后Applicationmaster 要求指定的nodemanager 节点启动任务。

   技术分享         启动之后,去干Resource Manager 指定的map tesk。

  技术分享         等Map task干完之后,通知application master。然后application master 去告知resouce manager。接下来Resource manager 分配新的资源给application master,让它找人干其它的活儿。

     技术分享         接下来Application master 通知nodemanager启动新的Container准备干活儿。该活儿的输入是map task结束的输出。

     技术分享         开始干Reduce Task任务。

 技术分享

          等各个节点上的Reduce task 都干完了,将干活儿的nodemanager的任务结果进行同步。做最后的reduce任务。

     技术分享     等都计算完了,最后将最终的结果输出到hdfs。任务完成。


     通过图解可以更清楚的了解整个 YARN的工作流程。  

本文出自 “David” 博客,请务必保留此出处http://davidbj.blog.51cto.com/4159484/1671064

图解YARN工作原理

标签:yarn 执行流程

原文地址:http://davidbj.blog.51cto.com/4159484/1671064

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!