MapReduce(Join)

本文详细介绍了MapReduce中的Reduce Join工作原理,包括Map端和Reduce端的主要任务,并通过一个具体的案例展示了如何进行Reduce Join。此外,文章还讨论了Reduce Join的缺点,如资源利用率不高和数据倾斜问题,并提出了解决方案——Map Join。Map Join适用于小表和大表的场景,它通过在Map端缓存小表,提前处理业务逻辑,减轻Reduce端压力。
摘要由CSDN通过智能技术生成

一、Reduce Join

Reduce Join工作原理

        Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录,然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。

Reduce端的主要工作,在Reduce端以连接字段作为key的分组已经完成,我们只需要在每个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并。

Reduce Join案例实操

id      pid  amount

1001    01    1                        
1002    02    2
1003    03    3
1004    01    4
1005    02    5
1006    03    6

pid    pname

01    小米
02    华为
03    格力

商品信息表中数据根据商品pid合并到订单数据表中。

id         pname         amount

1001        小米        1

1004        小米        4

1002        华为        2

1005        华为        5

1003        格力        3

1006        格力        6

需求分析

通过将关联条件作为Map输出的key,将两表满足Join条件的数据并携带数据所来源的文件信息,发往同一个ReduceTask,在Reduce中进行数据的串联

代码实现

1)创建商品和订合并后的Bean类


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值