对MapReduce基本上完全没了解,不过根据楼上各位的解释,举一个自己认为算是MapReduce的简单易懂的例子:
某学校进行了一次期末考。以数学考试为例,共收到考卷1000份,有数学老师10人。
Map:因为每份考卷是独立的,所以所得分数也是独立的,那么我们可以让每个老师批阅100份,10个老师同时批阅(并行处理),加快处理速度。
Reduce:上一项操作得到了成绩表,然后例如我们要得出某班级的平均分,可以按 @
reus 所说的:
比如用reduce操作来计算1 2 3 4 5的和
第零步,初始状态是0,因为什么都没加
第一步,输入的是1,当前状态是0,因为是求和,所以把这两个数相加,得到1,这个结果作为新的状态
第二步,输入的是2,当前状态是1,相加得到新状态3
第三步,输入的是3,当前状态是3,相加得到新状态6
第四步,输入的是4,当前状态是6,相加得到新状态10
最后一步,输入的是5,当前状态是10,相加得到15
这个15就是最终的状态了,也就是这个集合的和,也就是这个reduce操作的结果
得出总分,再除以人数就得到了平均分。