MapReduce:Map端Join算法实现

本文详细介绍了MapReduce中map端Join算法的原理与实现过程,适用于处理小表与大表关联的情况。通过将小表分发到所有map节点,实现本地join,提高并发度和处理速度。示例展示了如何在mapper类中预定义小表,以及运行程序的方法。
摘要由CSDN通过智能技术生成

map端join算法实现

1、原理阐述
适用于关联表中有小表的情形;
可以将小表分发到所有的map节点,这样,map节点就可以在本地对自己所读到的大表数据进行join并输出最终结果,可以大大提高join操作的并发度,加快处理速度
2、实现示例
–先在mapper类中预先定义好小表,进行join
–引入实际场景中的解决方案:一次加载数据库或者用

资源文件
orders.txt---->放在本地电脑中
pdts.txt---->放在集群上

orders.txt

  1. 1001,20150710,p0001,2
  2. 1002,20150710,p0002,3
  3. 1002,20150710,p0003,3

pdts.txt

  1. p0001,xiaomi,1000,2
  2. p0002,appale,1000,3
  3. p0003,samsung,1000,4

第一步:定义mapJoin

public class MapJoinMap extends Mapper<LongWritable, Text,Text,Text> {
   

     HashMap<String,String>map=new HashMap<>();
     String line=null;
   //用于程序的初始化
    @Override
    protected void setup(Context context) throws IOException, InterruptedException {
   
    //获取缓存下来的数据
        URI[] cacheFiles = DistributedCache.getCacheFiles(context.getConfiguration
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值