map:映射; reduce:规约
MR on Yarn架构
== Yarn的架构 == mapreduce job执行流程
MapReduce的流程(面试):
- 用户向yarn提交应用程序(job),包括applicationMaster程序、启动applicationMaster命令等;
- RM为该job分配第一个容器,并与对应的nm通信,要求它在这个容器中去启动job的applicationMaster程序;
- applicationMaster首先向Applications Manager 注册,用户就可以直接在web界面查看job的整个运行状态和日志;
- applicationMaster向Resource Scheduler,采用轮询的方式通过rpc协议去申请和领取资源列表;
- 一旦applicationMaster申请到资源后,便与对应的NM节点通信,便于启动任务;
- NM为任务task设置好运行环境(环境变量,jar包等),将任务的启动命令写在一个脚本文件中,并通过脚本启动任务;
- 各个Task通过IPC向applicationMaster汇报自己的状态和进度,以让applicationMaster随时掌握各个任务的运行状态,从而可以在任务运行时重新启动任务。则web界面可以随时查看job当前的运行状态;
- applicationMaster向Applications Manager汇报状态