The value of knowledge lies not in possession, but in share.

0%

MapReduce On Yarn工作原理

用户向Yarn提交一个MapReduce应用,Yarn会分两个阶段运行:

  1. ResourceManager启动MRAppMaster

    其中,MapReduce的ApplicationMaster负责管理作业生命周期

  2. MRAppMaster创建应用程序,申请资源,并监控其运行过程,直到运行成功

MRAppMaster的3种运行模式:本地,uber,非uber;

MapReduce on Yarn工作流程:

  1. 用户向YARN中提交应用程序/作业,包括MRAppMaster程序、启动MRAppMaster的命令、用户程序等;
  2. ResourceManager为作业分配第一个Container,并与对应的NodeManager通信,要求它在这个Containter中启动该作业的MRAppMaster;
  3. MRAppMaster首先向ResourceManager注册,这样用户可以直接通过ResourceManager查询作业的运行状态;然后它将为各个任务申请资源并监控任务的运行状态,直到运行结束。即重复步骤4-7;
  4. MRAppMaster采用轮询方式通过RPC请求向RM申请和领取资源;
  5. MRAppMaster申请到资源后,便与对应的NM通信,要求它启动任务;
  6. NodeManager使用脚本启动任务(环境变量,jar包等);
  7. 各个任务通过RPC协议向MRAppMaster汇报自己的状态和进度,以让MRAppMaster 随时掌握各任务的运行状态,从而可以在任务失败时重新启动任务;在作业运行过程中,用户可随时通过RPC向ApplicationMaster查询作业当前运行状态;
  8. 作业完成后,MRAppMaster向ResourceManager注销并关闭自己;

🍭支持一根棒棒糖吧!