👉👉👉 哈喽!大家好,我是【大数据的奇妙冒险】的作者 ,具有 Java 以及大数据开发经验,目前是一位大数据领域项目经理。
擅长 Java、大数据开发、项目管理等。持有 PMP 和 系统架构设计师证书,可以说是持证上岗了😀
如果有对【大数据】感兴趣的朋友,欢迎关注 公 众 号【大数据的奇妙冒险】
前言:大数据开发过程中,经常会遇到数据倾斜的问题,也是面试必问的问题。今天就来说一下数据倾斜的原因及其解决方法。
导航
什么是数据倾斜
数据倾斜是指在分布式处理中,数据分布不均匀,有部分数据比较集中。
数据倾斜会使得在处理过程中,某个节点的处理效率过低,甚至造成内存溢出。
比如有1亿条性别数据,其中性别为男的数据有9000w,性别为女的有1000w,处理的时候分到不同节点就容易造成数据倾斜。
造成数据倾斜的原因
-
业务本身造成的;
-
key 分布不均;
-
某些 SQL 操作容易造成数据倾斜;
造成数据倾斜的主要操作
group by
维度过少,某些值比较大,分发到不同 Reduce 操作,造成某个 Reduce 数据倾斜;
join
某些