大数据中Spark数据倾斜表现及解决方案是什么

发布时间:2021-12-06 10:27:57 作者:柒染
来源:亿速云 阅读:112

今天就跟大家聊聊有关大数据中Spark数据倾斜表现及解决方案是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

数据倾斜描述

Spark数据倾斜表现

数据倾斜产生的原因是:shuffle的时候,需要将各个节点的相同的key拉取到同一个节点上,如果这个key对应的数据量非常大的时候,就会发生数据倾斜。

数据倾斜只会发生在shuffle过程中,Spark引擎会触发Shuffle的RDD算子有:distinct、repartition、reduceByKey、groupByKey、aggregateByKey、join

常见解决方案

调整并行度

需要Shuffle的操作算子上直接设置并行度或者使用spark.default.parallelism设置。如果是Spark SQL,还可通过SET spark.sql.shuffle.partitions=num_tasks设置并行度。

该方法使用场景少,只能缓解数据倾斜,不能彻底解决数据倾斜。

Map side join

通过Spark的Broadcast机制,将Reduce Join转化为Map Join,避免Shuffle,从而完全消除Shuffle带来的数据倾斜。

参与Join的一侧数据集足够小,并且主要适用于Join的场景,不适合聚合的场景,适用条件有限。

异常值过滤

通过Spark的reduceByKey,统计每一个key的数量,超过指定数量的key或者数量top的key,作为异常key。当然也可以使用Sample对RDD进行抽样后,进行key的统计。

该方法的特点是:简单、粗暴,有一定的适用场景。

key值转换:加随机数

这个可以理解为大招

实际场景中可能需要上述方案的组合操作,比如:异常值过滤 + key值转换:加随机数,可以进行性能的优化:根据异常值,对RDD进行拆分:分别拆分成两个RDD,对于没有数据倾斜的,正常操作。对于有数据倾斜的加上随机前缀,再进行Shuffle操作。

看完上述内容,你们对大数据中Spark数据倾斜表现及解决方案是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

推荐阅读:
  1. 16、Hive数据倾斜与解决方案
  2. Spark 数据倾斜及其解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spark 大数据

上一篇:Perl守护进程怎么用

下一篇:Perl包怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》