MapReduce核心思想
MapReduce核心编程思想 即分而治之
需求:统计其中每一个单词出现的总次数(查询结果:a-p一个文件,q-z一个文件)
1)分布式的运算程序往往需要分成至少2个阶段
2)第一个阶段的MapTask并发实例, 完全并行运行,互不相干
3)第二个阶段的ReduceTask 并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出。
4)MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就 只能多个MapReduce程序,串行运行。
总结:分析WordCount数据流走向深入理解MapReduce核心思想。
若干问题细节
1)MapTask如何工作
2)ReduceTask 如何工作
3)MapTask如何控制分区、排序等
4)MapTask和ReduceTask之间如何衔接
MapReduce进程
》1:什么是进程?
即在内存中运行的程序
》2:MapReduce进程
一个完整的MapReduce程序在分布式运行时有三类实例进程:
(1)MapTask:
负责Map阶段的整个数据处理流程。
(2)ReduceTask:
负责Reduce阶段的整个数据处理流程。
(3)MrAppMaster:
负责整个程序的过程调度及状态协调。