MapReduce常见计算模式

本文介绍了MapReduce在实际编程中的常见计算模式,如过滤、Top N、Join和聚合。过滤模式包括简单过滤和Top N,其中Top N通过Mapper计算局部最大值,Reducer计算全局最大值。Join模式分为Reduce-side join和Map-side join,分别适用于不同场景。聚合模式包括数值求和、记录求和,以及Group by分组求和,通过MapReduce实现数据的汇总和分组计算。
摘要由CSDN通过智能技术生成

MapReduce常见计算模式,即实际编程中如何使用MapReduce实现常见的Top N,join等数据操作。随着Hadoop等工具的发展,已经提供了各种高级语义的操作符,不需要由程序员自己在代码中实现这些计算了,因此本文仅仅是作为理解MR如何工作的参考。

过滤模式

1,filter。简单过滤模式指在一个较大的数据集中按照规则筛选出较小的数据集,相当于SQL中的where条件。由于此类操作不需要对数据进行聚合操作,所以无须Reduce阶段,是一个Map-only类型的方案。
Mapper函数的输入是较大数据集;在mapper内部调用一个判断函数f对内容进行判断,返回true或false;true则输出数据,false则不输出。

2,Top N
从大量数据中,根据记录某个字段内容的大小取出其值最大的n条记录,这也是常见的数据过滤应用场景。这和简单过滤的区别是,简单过滤的条件判断仅涉及当前记录,而Top n计算模式则需要在记录之间进行比较,并获得全局最大的数据子集。
其基本思路很简单,多个mapper计算出当前block(数据块)内的最大top n的值,也就是局部的最大top n。之后全部局部最大值交由唯一的reducer计算出全局的最大top n。其特点是:
a,Mapper和Reducer中的逻辑是一样的。
b,Reducer只有一个。
c,Mapper和Reducer可以使用任何排序算法找出局部/全局最大值。

Join模式

两个数据集进行join操作也很常见,即两个不同数据集根据相同外键进行信息融合。常见的join包括Reduce-side join和Map-side join。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值