基于MapReduce的并行算法设计

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

这是中国大学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为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值