《大数据:互联网大规模数据挖掘与分布式处理》(第2版)习题2.2.1解析

互联网大规模数据挖掘与分布式处理(第2版)习题6.1.1-6.1.3解析

电子科技大学课程《大数据分析与挖掘》(2022秋)第一次作业。

问题描述

在这里插入图片描述

MapReduce经典案例

经典案例

解答

第一问

不同的Reducer的时间差异会很大,因为在Map任务中不使用组合器的话,所有Map任务的输出都是键-值对:(w1,1), (w2,1),…,(wn,1),在Shuffle操作后,相同键的键-值对完成分区,排序、分组后作为中间文件成为Reduce任务的输入,通常来说不同键的值表大小差距很大(频繁词汇和冷门词汇),导致不同的Reducer的时间差异会很大。

第二问

如果将Reducer组合成随机的10个任务,时间差距不会十分显著,因为通过使用比Reducer数目更少的Reduce任务,可以减少偏斜性(skew)带来的影响。通过使用比计算节点数目更多的Reduce任务,可以进一步减少偏斜性(skew),在这种情况下,长的Reduce任务可能占满某个计算节点,而几个更短的Reduce任务可以在单个计算节点上串行运行;而如果将Reducer组合成10000个Reduce任务,首先,增加Reduce任务数目会增加整个框架的开销,其次,每一个Reduce任务都要对应一个中间文件,这也会增加存储空间的开销,最后,通常来说不同键的值表大小差距很大,如果每一个Reducer都用一个单独的Reduce任务来完成,那么任务本身会表现出偏斜性(skew),即任务的完成时间差异很大。

第三问

假设我们在100个Map任务中使用组合器,那么上述时间的差异不会很显著。因为我们在对键-值对(w1,1), (w2,1),…,(wn,1)进行分组和聚合之前就应用了Reduce函数,单个Map任务产生的包含键w的键-值对可以组合成一个对(w,m),其中m为w在该Map任务所处理文档集中的出现次数。由此可见,组合器通过减少需要发送到Reduce的数据量和所需时间来帮助提高MapReduce的效率。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

UestcXiye

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

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

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

打赏作者

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

抵扣说明:

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

余额充值