1.mapreduce介绍
映射(Mapping)对集合里的每个目标应用同一个操作。即,如果你想把表单里每个单元格乘二,那么把这个函数单独地应用在每个单元格上的操作就属于mapping。行数不变。
化简(Reducing )遍历集合中的元素来返回一个综合的结果。即,输出表单里一列数字的和这个任务属于reducing。行数变化。
2.mapreduce流程
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注销并关闭自己。