1.MapReduce
MapReduce是由Java开发的,代码非常繁琐,现在企业基本不会用MapReduce。
有少量公司仍然继续使用MapReduce,所以还是有机会碰上。
Map: 映射
Reduce: 规约
Map:
x --》(x,1) key,value 键值对
y --》(y,1)
z --》(z,1)
x --》(x,1)
Reduce:
x,2
y,1
z,1
相当于一个sql语句:select name,sum(value) from xxx group by name
2.版本
hadoop1.x 部署进程JobTrack和TaskTrack,需要做维护
hadoop2.x 主流,不需要维护JobTrack和TaskTrack,所有作业提交到yarn平台,集中由Yarn管理,主要掌握hivesql spark flink的作业调度。
3.MapReduce on 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注销并关闭自己。