Mapreduce-实验、实践

实验:

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

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

在这里插入图片描述

实验(五): Reduce端连接

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

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

在这里插入图片描述

代码详情

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 布隆过滤器

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

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

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

代码详情

mapreduce-实践

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百里 Jess

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值