YARN资源调度框架

前言:yarn是hadoop2.x版本以后才有的

 

概念一:RM(resourceManager)+NM(nodeManager)

     解析:yarn的资源管理通常通过1个RM+N个NM的模式,其中还有一个处理准备状态的RM,如果主的NM挂掉以后,处于准备状态的RM将会启动阶梯主RM的工作,防止错误的发生

       RM(resouceManager)负责资源调度,主要有以下功能

       (1)处理客户端请求(例如说启动或杀死一个Application)

        (2)启动监控ApplicationMaster

         (3)监控NM的状态

        (4)系统的资源调度和分配

 

     NM(nodeManager)整个集群中有N个,负责单个节点的资源管理和使用以及task的运行情况

         (1)定期向RM汇报本节点的资源使用情况和各个container的运行状态

          (2)接受并处理RM的container启停的各种命令

           (3)单个节点的资源管理和任务管理

 

      ApplicationMaster:每个应用/作业对应一个,负责应用程序的管理

           (1)数据切分

            (2)为应用程序想RM申请资源,并分配给内部任务

             (3)与NM通信以启停task,task是运行在container中的

             (4)task的监控和容错

 

       Container:对任务运行情况的描述(内存,CPU等)

 

YARN的执行流程:

   (1)用户向YARN提交应用程序,其中包括启动ApplicationMaster命令、用户程序等

    (2)ResourceManager为该应用分配第一个Container,并与对应的nodeManager通信,要求它在这个container中启动应用程序的ApplicationMaster

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

    (4)ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请和领取资源

    (5)一旦AppplicationMaster申请到资源后,便与对应的NodeManager通信,要求它启动任务

     (6)NodeManager为任务设置好运行环境包括(环境变量、JAR包,二进制程序等)后,将任务启动命令写到一个脚本中,并通过改脚本启动任务

     (7)各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度,以让ApplicationMaster随时掌握各个任务,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC向ApplicationMaster查询应用程序的当前运行状态 

你可能感兴趣的:(YARN资源调度框架)