一、MapReduce核心思想
- 分布式的运算程序往往需要分成至少2个阶段
- 第一个阶段的
MapTask
并发实例,完全并行运行,互不相干 - 第二个阶段的
ReduceTask
并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask
并发实例的输出 MapReduce
编程模型只能包含一个Map
阶段和一个Reduce
阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce
程序,串行运行
二、MapReduce的进程
一个完整的MapReduce
程序在分布式运行时有三类实例进程:
MrAppMaster
:负责整个程序的过程调度及状态协调MapTask
:负责Map
阶段的整个数据处理流程ReduceTask
:负责Reduce
阶段的整个数据处理流程