MapReduce中数据倾斜的产生和解决办法详解

本文详细探讨了MapReduce中数据倾斜的原因,主要体现在数据分布不均,尤其是在shuffle阶段。数据倾斜与业务逻辑和数据量密切相关,可能导致reduce任务执行缓慢。为解决这一问题,提出了调优参数、在key上做文章、预先group操作以及利用map join等策略。理解数据倾斜的原理并采取相应措施,能够有效改善大数据处理效率。
摘要由CSDN通过智能技术生成
2017-10-23  细柳条  小秀才翻译铺

    前言:数据倾斜是日常大数据查询中隐形的一个BUG,遇不到它时你觉得数据倾斜也就是书本博客上的一个无病呻吟的偶然案例,但当你遇到它是你就会懊悔当初怎么不多了解一下这个赫赫有名的事故。

    当然你和数据倾斜的缘分深浅还是看你公司的业务逻辑和数据量有没有步入数据倾斜的领地。


    说明:关于数据倾斜的产生原因我将结合 map 和 reduce 阶段中的 shuffle 来讲解,若是对 shuffle 有所忘记需要温故的请到 MapReduce:详解Shuffle(copy,sort,merge)过程 进行相关了解。另本人能力有限,仅根据自己所了解的知识回答,若有误处或不足之处望不吝指出。


一、什么是数据倾斜以及数据倾斜是怎么产生的?


    简单来说数据倾斜就是数据的key 的分化严重不均,造成一部分数据很多,一部分数据很少的局面。

    举个 word count 的入门例子,它的map 阶段就是形成 (“aaa”,1)的形式,然后在reduce 阶段进行 value 相加,得出 “aaa” 出现的次数。若进行 word count 的文本有100G,其中 80G 全部是 “aaa” 剩下 20G 是其余单词,那就会形成 80G 的数据量交

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值