yarn的job提交流程

yarn的体系结构
  • ResourceManager是一个全局的资源管理器,负责整个系统的资源管理和分配,主要包括两个组件,调度器Scheduler和应用程序管理器。
  • 调度器主要负责资源管理和分配。调度器主要接收来自ApplicationMaster的应用程序资源请求,并根据容量、队列等限制条件(如每个队列分配一定的资源,最多执行一定数量的作业等),把集群中的资源以容器的形式分配给提出申请的应用程序。
  • 容器的选择通常会考虑应用程序所要处理数据的位置,进行就近选择,从而实现计算向数据靠拢。
  • YARN不仅自身提供了许多种直接可用的调度器,也允许用户根据自己的需求重新设计调度器。
  • 应用程序管理器器负责系统中所有应用程序的管理工作,主要包括应用程序提交,与调度器协商资源以启动ApplicationMaster、监控ApplicationMaster运行状态并在失败时重新启动等。
  • ResourceManager接收用户提交的作业,按照作业的上下文信息以及从NodeManager收集来的容器状态信息,启动调度过程。为用户作业启动一个ApplicationMaster。
  • ApplicationMaster的主要功能
    (1)当用户作业提交时,ApplicationMaster与Resourcemanager协商获取资源,ResourceManager会以容器的形式为ApplicationMaster分配资源。
    (2)把获得的资源进一步分配给内部的各个任务,实现资源的二次分配;
    (3)与NodeManager保持交互通信进行应用程序的启动,运行,监控和停止,监控申请到的资源的使用情况,对所有任务的执行进度和状态信息进行监控,并在任务发生失败时执行失败恢复。
    (4)定时向ResourceManager发送心跳消息,报告资源的使用情况和应用的进度信息;
    (5)当作业完成时,ApplicationMaster向ResourceManager注销容器,执行周期完成。
  • NodeManager是驻留在一个YARN集群中的每个节点上的代理,主要负责容器生命周期管理,监控
yarn的job提交流程
  • 用户编写客户端应用程序,向YARN提交应用程序,提交的内容包括ApplicationMaster程序、启动ApplicationMaster的命令、用户程序。
  • YARN中的ResourceManager负责接收和处理来自客户端的请求。接到客户端的请求后,ResourceManager里面的调度器会为应用程序分配一个容器。同时,ResourceManager的应用程序管理器会与该容器所在的NodeManager通信,为该应用程序在容器中启动一个ApplicationMaster
  • ApplicationMaster被创建后会首先向ResourceManager注册,从而使得用户可以通过ResourceManager来直接查看应用程序的运行状态。
  • ApplicationMaster采用轮询的方式通过RPC协议向ResourceManager申请资源。
  • ResourceManager以容器的方式向提出申请的ApplicationMaster分配资源,一旦ApplicationMaster申请到资源后,就会与该容器所在的NodeManager进行通信,要求它启动任务。
  • 当ApplicationMaster要求容器启动任务时,它会为任务设置好运行环境,然后将任务启动命令写到一个脚本中,最后通过在容器中运行该脚本来启动任务。
  • 各个任务通过某个RPC协议向ApplicationMaster汇报自己的状态和进度,让ApplicationMaster可以随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
  • 应用程序运行完成后,ApplicationMaster向ResourceManager的应用程序管理器注销并关闭自己。若ApplicationMaster因故失败,ResourceManager中的应用程序管理器会检测到失败的情形,然后将其重新启动,直到所有的任务执行完毕。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值