这是中国大学MOOC中的大数据算法课程笔记
实际上Google已经宣布弃用MapReduce,但是它作为一种并行处理框架,仍然在很多地方得到了广泛的应用。还有一个重要的MapReduce实现平台,就是Hadoop平台,大家仍然可以在上面使用。
这一讲是从算法设计的角度来讲解MapReduce。
这次分为下面4个内容:
1、MapReduce概述
2、字数统计
3、平均数计算
4、单词贡献矩阵的计算
一、MapReduce概述
MapReduce是由Google公司开发的分布式编程模型,在2004年推出。这个编程模型的目的是给一些并不熟悉并行编程的程序员提供一个编程框架,使得他们可以容易地编写并行程序,运行在成百上千上万的机器集群上。
MapReduce实现了两个主要功能
Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集。
Reduce是把从两个或更多个Map中,通过多个线程、进程或者独立系统对并行执行处理的结果集进行分类和归纳。
在这个过程中,用户需要定义Map和Reduce函数
在Map过程和Reduce过程中间,需要对key/value对按key进行聚集,reduce函数被应用与每个组。
这样每个分组都是独立的,可以用分布式大规模并行的方式进行处理。
上图是MapReduce过程的示意图。其中combine操作和partition是可选的。
partition为并行reduce操作划分key空间。
combine操作是map后阶段运行的类reducer过程,把结果进行局部的聚集,用作减少网络流量的优化器。
MapReduce编程的重点是,程

本文详细介绍了MapReduce的编程模型,起源于Google并在Hadoop平台上广泛应用。MapReduce通过Map和Reduce函数实现数据的并行处理,简化了并行编程。文章重点讲述了MapReduce在字数统计、平均数计算和单词贡献矩阵计算中的应用,并探讨了如何通过本地聚合优化性能,以降低通信开销。此外,还讨论了combiner的设计原则以及在不同场景下的选择,如词对法和条纹法在计算单词共现矩阵中的应用。
最低0.47元/天 解锁文章
2534

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



