图解YARN工做原理

      YARN 即MapReduce V2版本。相比MapReduce V1 它有不少优势: node

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

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

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

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

       其实YARN还有不少优势,在这里就不尽兴一一列举。主要说一下YARN的工做流程。3d


        YARN 具体由哪些部分组成:blog

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

        wKiom1WY43ayjjsPAAGqIBnXW80270.jpg

         >  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时如何进行处理的总体流程。

     wKiom1WY6kGTyleXAALeVXQYYi0085.jpg

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

         wKiom1WY7VfA19qwAALtP283jlU576.jpg         而后Applicationmaster 要求指定的nodemanager 节点启动任务。

   wKioL1WY8FPzpC8cAAL-1TQ8Rcg452.jpg         启动以后,去干Resource Manager 指定的map tesk。

  wKioL1WY8NWDv3m7AAMCMXP8ctk774.jpg         等Map task干完以后,通知application master。而后application master 去告知resouce manager。接下来Resource manager 分配新的资源给application master,让它找人干其它的活儿。

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

     wKiom1WY8K3ygmZXAALgs7uJjWs563.jpg         开始干Reduce Task任务。

 wKioL1WY8tqCgp88AAJ-c3A-MOs153.jpg

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

     wKiom1WY8avzq6MCAAKqzpwxOs0598.jpg     等都计算完了,最后将最终的结果输出到hdfs。任务完成。


     经过图解能够更清楚的了解整个 YARN的工做流程。  

相关文章
相关标签/搜索