MapReduce的分而治之,你真的懂吗?

  • 分:

Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。

可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。

  • 合:

​ Reduce负责“合”,即对map阶段的结果进行全局汇总。


MapReduce借鉴了函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型。

  • Map: 对一组数据元素进行某种重复式的处理;

  • Reduce: 对Map的中间结果进行某种进一步的结果整理。

MapReduce中定义了如下的Map和Reduce两个抽象的编程接口,由用户去编程实现:

  • map: (k1; v1) → [(k2; v2)]

  • reduce: (k2; [v2]) → [(k3; v3)]


下面的图是从原料到汉堡包的过程,来体验分而治之的思想:

MapReduce的分而治之,你真的懂吗?_第1张图片


 

你可能感兴趣的:(大数据)