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