028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

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

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

我们提供的服务有:成都做网站、网站制作、微信公众号开发、网站优化、网站认证、北海街道ssl等。为1000+企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的北海街道网站制作公司

数据倾斜描述

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数据倾斜表现及解决方案是什么有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。


当前题目:大数据中Spark数据倾斜表现及解决方案是什么
本文链接:http://www.tsicrk.com/article/ghdhsi.html

其他资讯

让你的专属顾问为你服务

1.5967s