第139课:Spark面试经典系列之数据倾斜解决之对于两个RDD数据量都很大且倾斜的Key特别多如何解决?

xiaoxiao2021-02-28  115

139课:  Spark面试经典系列之数据倾斜解决之对于两个RDD数据量都很大且倾斜的Key特别多如何解决?

如果两个RDD的数据量都特别大而且倾斜的Key特别多如何解决:数据量特别大就无法把其中的一个RDD广播出去;如果倾斜的Key值特别多,就无法采用分而治之等方法。例如微信上有海量的数据、淘宝上有海量的数据,如果进行全网扫描就可能遇到这种情况,因为热点特别多,有成千上万个热点。

         两个RDD数据都特别多且倾斜的Key成千上万个,该如何解决数据倾斜的问题?

初步的想法:在倾斜的Key上面加上随机数。该想法的原因:shuffle的时候把key的数据可以分到不同的task里去。加随机数有个前提:必须知道哪些是倾斜的Key。但是:现在的倾斜的key非常之多,成千上万,所以如果说采样找出倾斜的key的话并不是一个非常好的想法。

下一个想法我们考虑进行扩容:首先,什么是扩容?就是把该RDD的中的每一条数据变成5条、10条、20条等,例如RDD中原来是10亿条数据,扩容后可能变成1000亿条数据;

其次࿰

段智华 认证博客专家 Spark AI 企业级AI技术 本人从事大数据人工智能开发和运维工作十余年,码龄5年,深入研究Spark源码,参与王家林大咖主编出版Spark+AI系列图书5本,清华大学出版社最新出版2本新书《Spark大数据商业实战三部曲:内核解密|商业案例|性能调优》第二版、《企业级AI技术内幕:深度学习框架开发+机器学习案例实战+Alluxio解密》,《企业级AI技术内幕》新书分为盘古人工智能框架开发专题篇、机器学习案例实战篇、分布式内存管理系统Alluxio解密篇。Spark新书第二版以数据智能为灵魂,包括内核解密篇,商业案例篇,性能调优篇和Spark+AI解密篇。从2015年开始撰写博文,累计原创1059篇,博客阅读量达155万次
转载请注明原文地址: https://www.6miu.com/read-43453.html

最新回复(0)