Hadoop3.x中MapReduce实现Map端join案例

本文介绍了如何在Hadoop3.x中通过MapReduce实现Map端的join,以减少数据传输中的资源消耗和数据倾斜问题。在案例中,我们将小表在mapper初始化时缓存,然后在map阶段利用大表进行join,无需自定义Reducer和复杂的Bean类。通过本地Windows环境运行代码,展示了map端join的实现过程和预期结果。
摘要由CSDN通过智能技术生成

在上一个案例中我们使用的是reduce端的join实现了两个表之间的连接,但是reduce端join会使大量数据在传输过程中较多产生资源的消耗,同时也会造成数据倾斜。如果我们能将这些数据在map端进行处理,这样在数据传给reduce端的时候就会压力较小,并且此时reduce端不需要在进行特殊处理,所以我们就可以将reduceTask的个数设置为0。所以该案例中我们尝试将上一案例中的需求通过map端的join来实现一下,这次我们将在本地windows上运行代码。

map join的大致思路就是在mapper中初始化时将一张小表进行缓存,然后在map阶段用大表来对这个小表进行join,该案例中我们会将部门表进行缓存。在该案例中由于不需要reduce机型处理,所以我们不需要创建自定义Reducer;由于key只是用了其中一个字段(部门编号),所以也不需要使用多个属性定义Bean类。

  • 准备数据

数据准备工作参考上一篇中的步骤。

新建project:

  • 引入pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QYHuiiQ

听说打赏的人工资翻倍~

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

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

打赏作者

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

抵扣说明:

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

余额充值