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