spark-AQE/Tungsten介绍及其触发条件
目录
- 1、简介
- 2、AQE(自适应查询优化)触发条件及配置
- 3、Tungsten(钨丝计划)触发条件及配置
1、简介
-
AQE(Adaptive Query Execution)
- 定义:Spark 3.0引入的自适应查询优化技术,运行时动态调整执行计划。
- 核心能力:
- 动态分区合并:自动合并小分区以减少Shuffle数据量。
- 自动Broadcast Join:根据数据量动态切换Join策略。
- Skew Join优化:识别数据倾斜并自动调整分区策略。
- 配置参数:
spark.sql.adaptive.enabled=true spark.sql.adaptive.skewJoin.enabled=true
-
Tungsten(钨丝计划)
- 定义:Spark 1.6推出的底层性能优化框架,通过内存管理和代码生成提升效率。
- 关键技术:
- 内存列式存储:减少内存占用并提升缓存利用率。
- 代码生成(Codegen):动态生成JVM字节码替代解释执行。
- Sort-Based Shuffle优化:基于内存的排序减少磁盘I/O。
- 触发条件:需满足特定配置(如
spark.sql.shuffle.partitions
设置合理)。
2、AQE(自适应查询优化)触发条件及配置
-
生效条件:
- Spark 3.0+ 版本,且作业中至少存在一次 Shuffle 操作。
- 需通过以下参数显式启用:
set