当前位置: 首页 >> 分析
工作经验分享:Spark调优【效率提升!建议收藏】|信息
来源:哔哩哔哩     时间:2023-06-22 14:55:05

1.优化背景

业务数据不断增大, Spark运行时间越来越长, 从最初的半小时到6个多小时

某日Spark程序运行6.5个小时后, 报“Too large frame...”的异常:


【资料图】

org.apache.spark.shuffle.FetchFailedException: Too large frame: 2624680416

2.原因分析

2.1 抛出异常的原因

根本原因: 源数据的某一列(或某几列)分布不均匀,当某个shuffle操作是根据此列数据进行shuffle时,就会造成整个数据集发生倾斜,即某些partition包含了大量数据,超出了2G的限制。

异常,就是发生在业务数据处理的最后一步left join操作。

2.2 临时解决方案

增大partition数, 让partition中的数据量<2g

由于是left join触发了shuffle操作, 而spark默认join时的分区数为200(即spark.sql.shuffle.partitions=200), 所以增大这个分区数, 即调整该参数为800, 即spark.sql.shuffle.partitions=800

2.3 临时解决方案

Spark不再报错,而且“艰难”的跑完了, 跑了近6个小时!

通过Spark UI页面的监控发现, 由于数据倾斜导致, 整个Spark任务的运行时间是被少数的几个Task “拖累的”。

3.思考优化

3.1 确认数据倾斜

方法一: 通过sample算子对DataSet/DataFrame/RDD进行采样, 找出top n的key值及数量;

方法二: 源数据/中间数据落到存储中(如HIVE), 直接查询观察。

3.2 可选优化方法

1.HIVE ETL 数据预处理

把数据倾斜提前到 HIVE ETL中, 避免Spark发生数据倾斜

这个其实很有用,如果不是自己负责,请友好提醒你的上游负责同事

2.过滤无效的数据 (where / filter)

a.NULL值数据

b.“脏数据”(非法数据)

c.业务无关的数据

无效数据需要结合自己负责的业务和场景去判断哈,慎重处理业务的无关数据!!以免造成客户Bug

3.分析join操作, 左右表的特征, 判断是否可以进行小表广播 broadcast

a.这样可避免shuffle操作,特别是当大表特别大;

b.默认情况下, join时候, 如果表的数据量低于;

spark.sql.autoBroadcastJoinThreshold参数值时(默认值为10 MB), spark会自动进行broadcast, 但也可以通过强制手动指定广播;

业务数据量是100MB

c.Driver上有一个campaign_df全量的副本, 每个Executor上也会有一个campaign_df的副本;

d.JOIN操作, Spark默认都会进行 merge_sort (也需要避免倾斜)。

4.数据打散, 扩容join

分散倾斜的数据, 给key加上随机数前缀

1)提高shuffle操作并行度

2)多阶段

aggregate操作: 先局部聚合, 再全局聚合;

给key打随机值, 如打上1-10, 先分别针对10个组做聚合;

最后再统一聚合;

join操作: 切成多个部分, 分开join, 最后union。

判断出造成数据倾斜的一些key值 (可通过观察或者sample取样);

如主号,单独拎出来上述key值的记录做join, 剩余记录再做join;

独立做优化, 如broadcast;

结果数据union即可。

3.3 实际优化方法

示例:

4.优化后效果

优化处理思维导图

文末给大家分享一份经典的Spark性能优化文档,该文从开发、资源、数据倾斜和shuffle阶段四个角度分析了如何优化Spark程序,真实实用!

标签:
工作经验分享:Spark调优【效率提升!建议收藏】|信息 1 优化背景业务数据不断增大,Spark运行时间越来越长,从最初的半小时到6
全球热讯:54岁许晴穿粉色套装,清爽知性又文雅,皮肤紧致、肤色红润 54岁许晴穿粉色套装,清爽知性又文雅,皮肤紧致、肤色红润,许晴,知性,
湖北省襄樊市2023-06-17 04:11发布暴雨橙色预警 一、湖北省襄樊市天气预报1、宜城市气象台2023年06月17日04时11分发布
天天时讯:英特尔宣布晶圆代工将于明年一季度独立运作 6月22日,据台湾《经济日报》报道,英特尔21日举行线上分析师会议,简
第六届北京市“玩转音乐”青少年音乐创新素养培育系列活动启动——“玩转音乐”编创能力提升专题培训顺利举行 点击蓝字关注我们第六届北京市“玩转音乐”青少年音乐创新素养培育系列
当前关注:天价粽子礼盒又来了 售价8349元 客服:已售罄 6月22日,端午节已至,市场上各类粽子琳琅满目。线下普通礼盒粽现货挂
全球头条:【星岛热评】​端午赛龙舟,文化竞技促交流 ​每年农历五月初五的端午节是华人四大节日之一,也是在海外同属汉字文
suv指的是什么车型_SUV指的是什么车 全球速读 SUV是一种运动型多功能车,不同于ORV(越野车的简称),可以在崎岖的地形
成都大运会将至 如何高质量建设世界赛事名城?来看看这些专家怎么说 当前速读 研讨会现场封面新闻记者陈彦霏6月21日,由成都市社科联(院)主办,成
天天时讯:爱奇艺怎么退出登录账号_爱奇艺怎么退出登录 1、1 进入爱奇艺APP,点击我的。2、2 进入我的界面,点击设置。3、3 输
环球今亮点!知之者不如好之者好之者不如乐之者翻译英语_知之者不如好之者好之者不如乐之者翻译 1、子曰知之者不如好之者好之者不如乐之者的之是代词,指代它的。2、子
世界滚动:亿咖通科技美股跌12.99% 中国经济网北京6月22日讯亿咖通科技(NASDAQ:ECX)美股周三收报7 17美
红米k30pro添加门禁卡 热头条 要在红米K30Pro手机上添加门禁卡,可以按照以下步骤进行:1、确认手机
时隔一年券商“白名单”更新 5家公司新进4家被调出 全球视讯 时隔一年券商“白名单”更新5家公司新进4家被调出
新华保险:6月21日融资买入1148.51万元,融资融券余额11.07亿元 当前关注 6月21日,新华保险(601336)融资买入1148 51万元,融资偿还1715 13万
天天热点!wtf啥意思(wtf什么意思) tf啥意思,wtf什么意思这个问题很多朋友还不知道,来为大家解答以上的
顶流炎亚纶痛哭流涕求原谅,前男友被吓崩溃他执意进入我的身体|今日关注 近日,亚纶性侵未成年男孩的抓马大瓜发酵的一发不可收拾,当事人耀乐还
环球观焦点:“中考”进入尾声,基金经理布局“下半场” 据证券时报,在基金“中考”即将结束之际,公募基金的下半年策略也得以
快播:孕妇吃三华李的功效与作用_三华李的功效与作用 1、三华李,别名大蜜李、鸡麻李、山华李,是广东地区最誉盛名的名优、
同仁堂06月21日获沪股通增持3.76万股 06月21日,同仁堂获沪股通增持万股,最新持股量为万股,占公司A股总股
热门中概股多数下跌 蔚来跌近3%|快看点 【热门中概股多数下跌 蔚来跌近3%】财联社6月22日电,热门中概股多
当前看点!黑龙江双鸭山市尖山区:夜经济成为推动灵活就业新引擎 点亮一座城市的灯光,点燃一座城市的活力。经过一段时间的紧张筹备,6
焦点日报:曼谷湾(关于曼谷湾介绍) 来为大家解答以上的问题。曼谷湾,谷湾介绍这个很多人还不知道,现在让
二月份去哪里旅游比较好一点_二月份去哪里旅游比较好 当前视点 1、二月份这个寒意料峭的日子,适合去哪里旅游呢?下面推荐六个地方:到
大字版扑克机_大字_热推荐 1、不知楼主所说的大字是指文字的字号大些的字吗?如果是,那么请将需

广告

X 关闭

广告

X 关闭