YARN的简单了解--大数据纪录片第四记

  在hadoop中有三大核心组件,hdfs,yarn,mapreduce,在之前已经整理过hdfs基础的一些东西,今天来了解一下yarn中的主要角色以及它的作用,然后熟悉当客户端提交一个job到yarn上,yarn是如何去执行这个job。yarn(Yet Another Resource Negotiator)另一种资源调度协调者,是一种新的hadoop资源管理器,yarn是hadoop 2.X版本中的一个新特性。

  

  (一)主要角色以及其作用

    1、client:client觉得就是通过接口访问yarn,提交job或者启停任务。

    2、ResourceManager:全局资源管理器 ①负责整个集群的资源分配 ②调度、启动每一个job所属的ApplicationMaster ③监控ApplicationMaster的情况

        RsourceManager主要有两个构件组成:①调度器(scheduler) ②应用程序管理器(Applications Manager, ASM)

          调度器(scheduler):调度器根据容量、队列等限制条件将系统中的资源分配给正在运行的应用程序。调度器不参与任何具体应用程序的相关工作,如:不负责监控或者跟踪应用程序的执行状态、不负责重启应用执行失败或者硬件故障产生的失败任务。调度器仅根据各个应用程序的资源需求进行资源分配。

          应用程序管理器(Applications Manager):负责整个系统中所有应用程序,包括应用程序的提交、与调度器资源协商以启动Application Master、监控Application Master运行状态并在失败时重启它。

    3、Application Master:①与RM调度器协商以获取资源(用container表示) ②将得到的任务进一步分配给内部的任务 ③与NM通信以启停任务 ④监控所有任务状态,并在任务运行失败时重新为任务申请资源以重启任务

        yarn中自带两种Application Master的实现:一个是用于演示AM编写方法的实例程序distributedshell,他可以申请一定数量的container以并行运行shell命令或者shell脚本;另一种是运行MapReduce应用程序的AM-MRAppMaster

    4、NodeManager:每个节点上资源和任务管理器 ①定时向RM汇报本节点上资源使用情况和container的运行状况 ②接收并处理来自AM的container的启停请求

    5、Container:类似于一个资源的容器,RM为AM申请来的资源以container的形式表示 ①封装了某个节点上的多维资源,如:CPU,内存,磁盘,网络等

        在yarn中有两种container:一种是AM运行时需要的Container;另一种是AP为执行任务向RM申请的

  (二)yarn提交并执行一个MR任务的流程

    1、用户向yarn提交一个应用程序,其中包括MRAppMaster程序,启动MRAppMaster的命令,用户程序等

    2、RM为改程序分配一个container,并与对应的NM通信,要求在这个container中启动应用程序MRAppMaster

    3、MRAppMaster首先向RM注册,这样用户可以通过RM查看应用程序的运行状态,然后将为各个任务申请资源,并监控他的运行状态直到结束

    4、MRAppMaster采用轮询的方式通过RPC协议向RM申请和领取资源

    5、一旦MRAppMaster领取到资源,就与相对应的NM通信,启动任务

    6、NM为任务配置好运行环境之后,将任务启动命令写到一个脚本中,并通过该脚本启动任务

    7、各个任务通过某个RPC协议向MRAppMaster汇报自己的状态和进度,以让MRAppMaster随时掌握各个任务的运行状态,从而可以在任务失败的时候重新启动任务

    8、应用程序执行完成后,MRAppMaster向RM注销并关闭自己

猜你喜欢

转载自www.cnblogs.com/qugemingzihaonan13/p/9860428.html