ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop——MapJoin(减少数据倾斜)

2021-09-07 18:03:07  阅读:155  来源: 互联网

标签:map 倾斜 reduce Hadoop MapJoin 数据 进行


首先,先说一下当前了解到的一个适用MapJoin的场景吧:

比如我们此时手中有两个表需要我们进行处理,但是呢一个很大,一个很小。那么这个时候我们比较适合使用MapJoin进行处理。

那么我们具体是怎么实现MapJoin的这个操作的呢?:

我们可以在map端对小的那个表先进行缓存,提前在map端将数据进行处理,那么这么做有什么好处呢,我们可以减少reduce端的压力、加快数据传输的速度、尽可能的减少reduce端出现数据倾斜(暂时个人理解为:因为每个map端的大小是可以设置的默认是128M,在map端进行处理应该不会因为某一个键特别多导致数据倾斜的发生,而且每个mapTask都是并行的。呃……没得到确认暂时先这么理解,有问题会修改。)

具体实现:
在map的setup阶段对小的文件进行缓存到:
当然在驱动类之中还需要加上job.addCacheFile(new URI(“file:///D:/Hadoop/11_input/tablecache/pd.txt”));
在这里插入图片描述
小表样例:
在这里插入图片描述

然后在map阶段将大表的文件进行读取,按照需求将大表中的数据和从HashMap中提取出的数据合并输出。

在这里插入图片描述

标签:map,倾斜,reduce,Hadoop,MapJoin,数据,进行
来源: https://blog.csdn.net/d_l_w_d_l_w/article/details/120162895

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有