1)MapReduce函数首先把输入文件分成M块
2)分派的执行程序中有一个主控程序Master
3)一个被分配了Map任务的Worker读取并处理相关的输入块
4)这些缓冲到内存的中间结果将被定时写到本地硬盘,这些数据通过分区函数分成R个区
5)当Master通知执行Reduce的Worker关于中间<key,value>对的位置时,它调用远程过程,从Map Worker的本地硬盘上读取缓冲的中间数据
6)Reduce Worker根据每一个唯一中间key来遍历所有的排序后的中间数据,并且把key和相关的中间结果值集合传递给用户定义的Reduce函数
7)当所有的Map任务和Reduce任务都完成的时候,Master激活用户程序