MapReduce起源 1、Hadoop的思想来源于Google的几篇论文,论文中写道,MapReduce的灵感来源于函数式语言(Lisp)中的内置函数Map和Reduce。简单来说,在函数式语言里,Map表示对一张列表(List)中的每个元素进行计算,Reduce表示对一张列表中的每个元素进行迭代计算。它们具体的计算是通过传入的函数实现的,而Map和Reduce提供的是计算的框架。不过,从这样的解释到现实中的MapReduce相差太远,仍然需要一个跳跃。再仔细看,Reduce既然能做迭代计算,那就表示列表中的元素是相关的;而Map则对列表中的每个元素做单独处理,这表示列表中的数据是杂乱无章的。这样看来,就有点联系了。在MapReduce里,Map处理的是原始数据,自然是杂乱无章的,各条数据之间没有联系;到了Reduce阶段,数据是以Key后面跟着若干个Value来组织的,这些Value有相关性,符合函数式语言里Map和Reduce的基本思想。 2、这样就可以把MapReduce理解为:把一堆杂乱无章的数据按照某种特征归纳起来,然后处理并得到最后的结果。Map面对的是杂乱无章的、互不相关的数据,它解析每个数据,从中提取出Key和Value,也就是提取数据的特征。经过MapReduce的shuf