Yarn的工作流程
1、首先我们来看YARN工作流程图:
2、YARN工作流程注意包括以下几个步骤:
1.首先用户向YARN中的ResouceManager提交应用程序,包括用户程序、启动ApplicationMaster命令和ApplicationMaster程序等。
2.ResourceManager为该应用程序分配Container,随后与Container所在的NodeManager进行通信,并且由NodeManager在Container中启动对应的ApplicationMaster。
3.ApplicationMaster会在ResourceManager中进行注册,目的是让用户可以直接通过ResourceManager查看应用程序的运行情况,然后它会为这个应用程序的各项任务申请资源,同时监控其运行状态,直到运行结束
4.ApplicationMaster采用的轮询方式,基于RPC协议向ResourceManager 的 scheduler申请和领取资源
5.在ApplicationMaster申请到资源后,它会和申请到的Container所对应的NodeManager进行交互通信,同时要求在该Container中启动任务。
6.NodeManager为要启动的任务准备好运行环境,并且将启动命令写在一个脚本中,通过该脚本来运行任务。
7.每个任务基于RPC协议向对应的ApplicationMaster汇报自己的运行状态和进度,以便让ApplicationMaster随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。
8.应用程序运行完成后,期对应的ApplicationMaster会通过与ResourceManager通信来要求注销并关闭自己。