Mapreduce-实验、实践

实验:

  • 实验(一)数值概要—中位数与标准差
  • 实验(二):MapReduce计数器实验
  • 实验(三):MapReduce布隆过滤器的舆情过滤
  • 实验(四)StackOverflow数据集的分层操作
  • 实验(五): Reduce端连接
  • 代码详情
  • 实践:
  • (实践一)数值概要中combiner的作用
  • (实践二)大数据平台的使用步骤
  • (实践三)MapReduce 布隆过滤器
  • (实践四)MapReduce Top 10模式示例
  • (实践五)去重的用户—针对ctrip数据集去重
  • 代码详情

实验:

实验(一)数值概要—中位数与标准差

检查实验环境、运行示例程序。 利用数据概要完成中位数与标准差计算。 数据集可以采用Ctrip数据集,计算内容可自定义。

如何验证MapReduce是否配置成功 mapreduce实验_mapreduce

实验(二):MapReduce计数器实验

在给定数据集上完成计数实验,可以用ctrip数据集或50w数据集。

如何验证MapReduce是否配置成功 mapreduce实验_如何验证MapReduce是否配置成功_02

实验(三):MapReduce布隆过滤器的舆情过滤

按指定的热点词列表训练布隆过滤器,对舆情数据集进行过滤,过滤后的数据写入HDFS。

如何验证MapReduce是否配置成功 mapreduce实验_linux_03

实验(四)StackOverflow数据集的分层操作

构建StackOverflow数据集中问题与回复的分层结构,将贴子与回复关联起来。

如何验证MapReduce是否配置成功 mapreduce实验_如何验证MapReduce是否配置成功_04

实验(五): Reduce端连接

用利ctrip数据集,将product_info 与quantity数据集进行连接操作,连接的字段为product_id。

基本思路 (1):Map端读取所有的文件,并在输出的内容里加上标示,代表数据是从哪个文件里来的。 (2):在reduce处理函数中,按照标识对数据进行处理。 (3):然后根据Key去join来求出结果直接输出。

如何验证MapReduce是否配置成功 mapreduce实验_linux_05

代码详情

mapreduce-实验

实践:

(实践一)数值概要中combiner的作用

在前述数值概要的运用中,加入不同的combiner,测试不同环境下系统的性能,并给出分析、说明。 检查在内存优化模式下系统性能的区别。

Combiner的作用和用法 ①每一个map可能会产生大量的输出,Combiner的作用就是在map端对输出先做一次合并,以减少传输到reducer的数据量。 ②Combiner最基本是实现本地key的归并,Combiner具有类似本地的reduce功能。 如果不用Combiner,那么,所有的结果都是reduce完成,效率会相对低下。 使用Combiner,先完成的map会在本地聚合,提升速度。 注意:Combiner的输出是Reducer的输入,如果Combiner是可插拔的,添加Combiner绝不能改变最终的计算结果。所以Combiner只应该用于那种Reduce的输入key/value与输出key/value类型完全一致,且不影响最终结果的场景。比如累加,最大值等。

结论:使用combiner先进行本地reduce,它能有效的减少mapper的输出以降低网络和reducer上的压力。另外注意,combine在数据转换上需与reducer等价。就是说,如果去掉combiner,输出应该保持不变。

(实践二)大数据平台的使用步骤

如何验证MapReduce是否配置成功 mapreduce实验_如何验证MapReduce是否配置成功_06

(实践三)MapReduce 布隆过滤器

过滤器训练、过滤器应用、结果验证及分析

布隆过滤器(Bloom Filter)是1970年由布隆提出,是一个很长的二进制向量和一系列随机映射函数,可以用于检索一个元素是否在一个集合中 优点:空间效率和查询时间都比一般的算法要好的多 缺点:有一定的误识别率和删除困难

(实践四)MapReduce Top 10模式示例

在ctrip数据集上进行Top 10排序。

Top10 • 无论数据集大小,都可以得到一个确定的 Top K输出集合 • 找出某一特定标准下的最好记录集 • 此模式需要一个比较两记录的比较函数 • 同时使用了mapper和reducer,mapper找出本地的Top K,reducer负责做合并后的Top K运算

如何验证MapReduce是否配置成功 mapreduce实验_linux_07

(实践五)去重的用户—针对ctrip数据集去重

对ctrip数据集中的product-id进行去重操作

去重 • 遍历整个数据集,输出由唯一记录构成的集合 • 使用MapReduce框架的功能将相近记录分到一起实现去重 • 可以使用combiner提高效率 • Reducer基于键将null值分组,简单地输出键,保证其唯一性

如何验证MapReduce是否配置成功 mapreduce实验_linux_08

代码详情

mapreduce-实践