吴军老师(吴军老师的个人主页)的《数学之美》第29章,用大白话给出了Mapreduce根本原理。
将一个大任务拆分成小的任务,并且完成子任务的计算,这个过程叫做Map
将中间结果合并成最终结果,这个过程叫做Reduce
______________________________________________________________________________________________________________________________________
首先,看一个最基本的问题:矩阵的乘法。
要实现矩阵乘法的MapReduce,只要能够理解分块矩阵相乘就可以了,已知矩阵
,
,
其中:
,
矩阵
,那么
。
下面我们将矩阵和矩阵
分块,有太多方法,我这里还是拿《数学之美》中矩阵分块的方法。将矩阵
按列分为
块,矩阵
按行分为
块,即:
其中
。
那么显然:
。
这时候,我们就可以准备台计算机,每一台计算机计算一个
,这就是Map的过程,然后,再把这
台计算机上的结果加和,就是Reduce的过程。
————————————————————————————————————————————————————————————————————————————
后续,会加上常用的机器学习算法的MapReduce过程。

本文通过矩阵乘法实例解析了MapReduce的工作原理。利用《数学之美》中的方法,将矩阵分解并分配到多台计算机上进行计算,完成Map过程;随后汇总各部分结果得到最终答案,实现Reduce过程。
857

被折叠的 条评论
为什么被折叠?



