FAQ-spark作业数据倾斜优化
更新时间: 2024-09-09 14:24:54
阅读 173
FAQ-spark作业数据倾斜优化
问题描述/异常栈
spark作业数据倾斜优化
spark ui查看stage发现有数据倾斜的情况,
shufferead和shuffewrite均有数据倾斜的情况
并且查看sql执行图里有连续shuffehushjoin的节点
解决方案
set spark.sql.optimizer.forceShuffleBeforeJoin.enabled=true
conf.spark.sql.optimizer.forceShuffleBeforeJoin.enabled=true
问题原因
这个参数使用场景很局限,当观测到 SQL 执行图上,有连续的这样的节点,并且
发生数据倾斜,才去建议用户使用,否则可能让任务变慢很多
参数解析:
适用场景
数据倾斜严重:当数据倾斜问题导致Join操作变得非常慢时,可以考虑启用这个
选项。
数据分区不均匀:当数据分区不均匀导致部分任务数据量过大时,可以通过
Shuffle重新分区来优化。
不适用场景
数据已经分区良好:如果数据已经经过预处理并且分区非常均匀,强制Shuffle
可能会引入不必要的开销。
小规模数据集:对于小规模数据集,Shuffle的开销可能会超过其带来的性能提升。
作者:chenjie
文档反馈
以上内容对您是否有帮助?