19 | 配置项详解:哪些参数会影响应用程序执行性能?
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了配置项对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-23410 - 小新感觉这讲深度不够
作者回复: 感谢老弟的反馈,欢迎老弟批评指正~
2021-12-023 - 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归属地:广东