零基础入门 Spark
吴磊
前 FreeWheel 机器学习研发经理
19171 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 38 讲
零基础入门 Spark
15
15
1.0x
00:00/00:00
登录|注册

19 | 配置项详解:哪些参数会影响应用程序执行性能?

你好,我是吴磊。
在上一讲,我们学习了 Broadcast Join 这种执行高效的 Join 策略。要想触发 Spark SQL 选择这类 Join 策略,可以利用 SQL Functions 中的 broadcast 函数来强制广播基表。在这种情况下,Spark SQL 会完全“尊重”开发者的意愿,只要基表小于 8GB,它就会竭尽全力地去尝试进行广播并采用 Broadcast Join 策略。
除了这种比较“强势”的做法,我们还可以用另一种比较温和方式,来把选择权“下放”给 Spark SQL,让它自己来决定什么时候选择 Broadcast Join,什么时候回退到 Shuffle Join。这种温和的方式,就是配置项设置。在第 12 讲,我们掌握了 Spark 常规配置项,今天这一讲,咱们来说一说与 Spark SQL 有关的那些配置项。
不过,打开 Spark 官网的 Configuration 页面,你会发现,这里有上百个配置项,与 Spark SQL 相关的有好几十个,看得人眼花缭乱、头晕目眩。实际上,绝大多数配置项仅需采用默认值即可,并不需要我们过多关注。因此,我们把目光和注意力聚集到 Join 策略选择和 AQE 上。
Join 策略的重要性不必多说,AQE(Adaptive Query Execution)是 Spark 3.0 推出的新特性,它帮助 Spark SQL 在运行时动态地调整执行计划,更加灵活地优化作业的执行性能。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了配置项对Spark SQL执行性能的影响以及如何利用这些配置项来优化执行计划和性能。首先,作者讨论了广播阈值的概念,以及如何根据基表大小自动选择Broadcast Join策略。随后,介绍了Spark 3.0中引入的AQE(Adaptive Query Execution)机制,包括Join策略调整、自动分区合并和自动倾斜处理。这些特性结合Shuffle中间文件提供的统计信息,在运行时动态地调整执行计划,从而优化作业执行性能。读者可以通过调节相关配置项来影响Spark SQL的优化行为。整篇文章详细介绍了这些配置项的原理和实现方式,为读者提供了深入了解和优化Spark SQL执行性能的指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《零基础入门 Spark》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • 海阔天空
    自动倾斜处理后,如何保证同样key的数据在同一个reduce里执行

    作者回复: 实际上,key的分发,与数据倾斜与否,并没有本质是的联系。不论数据是否倾斜,shuffle机制一定保证同样的可以,被分发到同样的reduce task。 不过,关于自动倾斜处理,确实有些地方值得注意。一个是,AQE对于倾斜的处理,是进程内部的。也就是说,一个倾斜的task,可能会被拆成两个或是多个子task,但是这些task,其实都还是在同一个Executor内。 在Join的时候,倾斜的表,会由AQE做倾斜处理;而与他做Join的表,相应的数据分区,是需要进行复制的。这些细节还需要特别注意哈~

    2021-10-23
    4
    10
  • 小新
    感觉这讲深度不够

    作者回复: 感谢老弟的反馈,欢迎老弟批评指正~

    2021-12-02
    3
  • Geek_1e4b29
    同问,相同的key如何解决,加问一个,你们的生产上开了这个参数吗,作业有多大,有没什么风险😬

    作者回复: 生产上确实是启用了AQE以及它的3个特性,当然,这里面包含自动倾斜处理。就风险来说,其实要看场景,我能想到的,会有性能隐患的场景在于,就是两张倾斜的大表做Join,这个时候,自动倾斜由于自身的机制,可能并不会带来性能上的提升。这一点,可以参考给“海阔天空”同学的回复哈~ 关于相同的key的问题,也可以参考留给“海阔天空”同学的回复哈~

    2021-10-26
  • bian
    老师,Spark作业输入数据20亿,每条记录都很小,过滤后1.8亿,之后repartition 5000,写入Hdfs,发现总有个别几个任务shuffle read读不完一直卡住,也不报错,没有倾斜问题,也没有特别大的记录,不知道为什么
    2023-05-31归属地:黑龙江
  • 唐方刚
    与广播阈值对比的文件系统和dag中间结果,这两个是同一个级别的概念吗,之前我有碰到过mapjoin的时候,几十M的orc表文件,4G的客户端内存都oom了
    2022-08-13归属地:广东
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部