yarn 的作业执行流程

  • yarn 架构及各个角色的职责
  • yarn 的作业执行流程
  • 执行流程的另一种解释:


yarn 架构及各个角色的职责

yarn生成产出 yarn的工作流程是什么_hadoop


yarn 作业执行流程

yarn 的作业执行流程

  • 1、用户向 YARN 中提交应用程序,其中包括 MRAppMaster 程序,启动 MRAppMaster 的命令、用户程序等。
  • 2、 ResourceManager 为该程序分配第一个 Container,并与对应的 NodeManager 通讯,要求它在这个 Container 中启动应用程序 MRAppMaster。
  • 3、 MRAppMaster 首先向 ResourceManager 注册,这样用户可以直接通过ResourceManager查看应用程序的运行状态,然后将为各个任务申请资源,并监控它的运行状态,直到运行结束,重复 4 到 7 的步骤。
  • 4、 MRAppMaster 采用轮询的方式通过 RPC 协议(Remote Procedure Call Protocol 远程调用协议)向 ResourceManager 申请和领取资源。
  • 5、一旦 MRAppMaster 申请到资源后,便与对应的 NodeManager 通讯,要求它启动任务。
  • 6、 NodeManager 为任务设置好运行环境(包括环境变量、 JAR 包、二进制程序等)后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
  • 7、各个任务通过某个 RPC 协议向 MRAppMaster 汇报自己的状态和进度,以让 MRAppMaster随时掌握各个任务的运行状态,从而可以在任务败的时候重新启动任务。
  • 8、应用程序运行完成后, MRAppMaster 向 ResourceManager 注销并关闭自己。

yarn生成产出 yarn的工作流程是什么_应用程序_02


yarn 架构

执行流程的另一种解释:

  • 1)客户端提交应用程序(hadoop jar…),客户端先去请求resourcemanager 申请资源。
  • 2)rm会返回一个资源节点(node),用于启动当前应用程序的mrappmaster。
  • 3)rm会到对应的节点上,启动mrappmaster。
  • 4)mrappmaster 向resourcemanager申请资源(maptask|reducetask需要的资源)
  • 5)resourcemanager向mrappmaster 返回对应的资源节点。
  • 6)mrappmaster 就会到对应的资源节点上启动maptask | reducetask(container中启动)任务。
  • 7)maptask任务向 mrappmaster 进行汇报自己的运行状态和进度。
  • 8)当mrappmaster 获取到 有一个maptask执行完成后, 就开始启动reducetask(container中启动)。
  • 9)reducetask 启动之后,也会向 mrappmaster进行汇报自己的状态和进度。
  • 10)每一个maptask 或 reducetask 运行完成后, mrappmaster到对应的节点上进行资源回收。
  • 11)整个任务运行完成后,mrappmaster 会向resourcemanager汇报并注销自己, 并把整个运行结果返回给客户端。