图解YARN工作原理

发布时间:2020-06-23 08:07:04 作者:david_bj
来源:网络 阅读:15531

      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组成。

        图解YARN工作原理

         >  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工作原理

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

         图解YARN工作原理         然后Applicationmaster 要求指定的nodemanager 节点启动任务。

   图解YARN工作原理         启动之后,去干Resource Manager 指定的map tesk。

  图解YARN工作原理         等Map task干完之后,通知application master。然后application master 去告知resouce manager。接下来Resource manager 分配新的资源给application master,让它找人干其它的活儿。

     图解YARN工作原理         接下来Application master 通知nodemanager启动新的Container准备干活儿。该活儿的输入是map task结束的输出。

     图解YARN工作原理         开始干Reduce Task任务。

 图解YARN工作原理

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

     图解YARN工作原理     等都计算完了,最后将最终的结果输出到hdfs。任务完成。


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

推荐阅读:
  1. YARN HA架构
  2. Hadoop 之 Yarn

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

yarn 执行流程

上一篇:Linux下修改系统编码的方法

下一篇:Docker Dockerfile详解

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》