mr在yarn架构设计
1.用户向yarn提交job,其中包含application master程序,启动application master的命令等。
2.RM为该job分配第一个container,与对应的NM通信,要求它在这个container启动作业的application master。
3.application master向applications manager注册,这样用户就可以通过RM Web,查看job的状态,一直到最后
4.application master采用轮询的方式通过RPC协议向resource scheduler,申请和领取资源。
5.一旦application master申请到资源后,与对应的NM通信,要求启动task。
6.NM为任务设置好运行环境后,将任务的启动命令写到一个脚本中,并通过该脚本启动任务运行任务。
7.各个 task 通过rpc协议汇报自己的状态和进度,以让application master随时掌握各个任务的运行状态,从而在任务失败时,重启启动任务。
8.job运行完成后,application master向applications manager注销并关闭自己。