yarn工作流程

yarn工作流程


服务功能
ResouceManager: 
    1、处理客户端的请求 
    2、启动和监控ApplicationMaster 
    3、监控nodemanager 
    4、资源的分配和调度

Nodemanager 
    1、处理单个节点的资源管理 
    2、处理来自ResouceManager的命令 
    3、处理来自ApplicationMaster的命令

ApplicationMaser 
    1、为应用程序申请资源,并分配给内部任务 
    2、任务的监控和容错

Container 
对多任务运行环境的抽象,包括CPU、内存等多维度资源以及环境变量、启动命令等任务运行的相关环境

运行流程
    1、客户端向RM中提交程序 
    2、RM向NM中分配一个container,并在该container中启动AM 
    3、AM向RM注册,这样用户可以直接通过RM査看应用程序的运行状态(然后它将为各个任务申请资源,并监控它的运行状态,直到运行结束) 
    4、AM采用轮询的方式通过RPC协议向RM申请和领取资源,资源的协调通过异步完成 
    5、AM申请到资源后,便与对应的NM通信,要求它启动任务 
    6、NM为任务设置好运行环境(包括环境变量、JAR包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务 
    7、各个任务通过某个RPC协议向AM汇报自己的状态和进度,以让AM随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务 
    8、应用程序运行完成后,AM向RM注销并关闭自己