什么是MapReduce?
MapReduce是一种编程模型,用于大规模数据集的并行运算;是面向大数据并行处理的计算模型、框架和平台。
MapReduce思想是什么?
MapReduce的思想核心是“分而治之”。
所谓“分而治之”就是把一个复杂的问题按一定的“分解”方法分为规模较小的若干部分,然后逐个解决,分别找出各部分的解,再把把各部分的解组成整个问题的解。
概况起来,MapReduce所包含的思想分为两步:
"Map(映射)" 和 "Reduce(归约)"
Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。
Reduce负责“合”,即对map阶段的结果进行全局汇总。
如何通俗的理解?
比较形象的语言解释MapReduce:
要数停车场中的所有停放车的总数量。
你数第一列,我数第二列…这就是Map阶段,人越多,能够同时数车的人就越多,速度就越快。
数完之后,聚到一起把所有人的统计数加在一起。这就是Reduce合并汇总阶段。
为什么要有MapReduce?
你一个人数一个停车场的汽车,很吃力,如果让你的几个好朋友和你一起数,你最后一汇总是不是就很简单了?这就是为什么要有MapReduce。