mapReduce使用分布式缓存机制

本文探讨如何利用MapReduce的分布式缓存机制应对reduce阶段的数据倾斜问题。通过在map阶段预加载商品信息到缓存,实现采购信息与商品信息的高效合并。示例展示了将采购表和商品信息在map端进行合并,有效减少了reduce的处理负担。
摘要由CSDN通过智能技术生成

由于有时候reduce value值数量的不确定性可能会造成数据倾斜,可以考虑使用分布式缓存机制,仅用map进行输出。

mapreduce中具体的函数为

job.addCacheFile(new URI("file:///Users/inequality/tmp/input/join/pro.txt"));

此函数可以在map运行之前在工作目录加入缓存文件,供map使用

具体程序代码:实现采购信息和商品信息的map端合并

采购表
1001,20150710,1,2
1002,20100910,1,3
1002,20120912,2,3

商品信息
1,xiaomi
2,chuizi

运行结果
1001,20150710,1,2 mi6
1002,20100910,1,3 mi6
1002,20120912,2,3 chuizi

public class MapJoin {
   


    static class MapJoinMapper extends Mapper<LongWritable, Text, Text, NullWritable> {
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值