Apache Auron 8.0.0-incubating 介绍与选型指南
介绍 Apache Auron 8.0.0-incubating:基于 DataFusion 的 Spark 原生向量化查询加速器,覆盖架构、特性、快速上手、限制与 Gluten/Comet/Velox 选型对比
Apache Auron 8.0.0-incubating 介绍与选型指南
一、信息基准
- 查询日期:2026-10-18。本文全部版本号、发布日期、社区数据均为当日联网实查结果,非本地安装实测。
- 版本依据:Apache Auron 当前最新稳定版为 8.0.0-incubating。依据:
- ASF 官方发布目录
downloads.apache.org/incubator/auron/现存最高版本目录为auron-8.0.0-incubating/(内含apache-auron-8.0.0-incubating-source.tgz及签名、SHA512 校验文件); - GitHub 仓库
apache/auron最新 Release 标签v8.0.0-incubating,发布于 2026-07-18(来源:github.com/apache/auron/releases,GitHub Releases Atom 摘要)。
- ASF 官方发布目录
- 官方来源清单:
| 来源 | 地址 |
|---|---|
| 项目官网 | https://auron.apache.org/ |
| 官方发布目录(ASF dist) | https://downloads.apache.org/incubator/auron/ |
| GitHub 仓库(官方同步副本) | https://github.com/apache/auron |
| README(默认分支 master) | https://github.com/apache/auron/blob/master/README.md |
| 许可证 | Apache License 2.0(ASF 项目标准许可,见官网 License 页) |
二、软件概述
Apache Auron(孵化中,版本 8.0.0-incubating,GitHub Release 日期 2026-07-18)是面向大数据计算引擎的原生向量化查询加速器:它接管分布式计算框架(当前主要是 Apache Spark)已经完成优化物理计划,将其映射为 Apache DataFusion(Rust 实现)的执行计划,以原生代码完成批量计算,从而消除 JVM 解释执行与 GC 带来的开销(来源:官方 README,查询日期 2026-10-18)。
关键定位要点:
- 许可:Apache License 2.0。
- 孵化状态:项目处于 Apache 孵化器,发行版本号携带
-incubating后缀,官方发布目录位于incubator/auron/。 - 社区沿革:从版本线可观察到,Auron 自 6.0.0 起以
-incubating后缀随 Apache 孵化流程发布,更早的 v4.0.x/v5.0.0 为孵化前社区版本(来源:auron.apache.org "Archives" 导航与 GitHub Releases 列表,查询日期 2026-10-18);社区普遍认为其技术路线与 Apache Gluten(incubating)同源,均为 Spark 原生向量化加速方向,本文以官方仓库现有公开信息为准表述。 - 技术栈:原生执行层为 Rust(基于 Apache Arrow 列式内存格式与 DataFusion 查询引擎),集成层以 Java JAR 形式挂接 Spark;官方在 JDK 8、11、17 上例行测试,并测试 JDK 21(来源:官方 README)。
- 性能佐证:官方 README 提供 TPC-DS 1TB 基准结果图表,宣称相对 Spark 纯 JVM 执行可带来显著加速(来源:官方 README Performance 节)。
三、核心架构
3.1 总体架构:计划接管 + 原生执行
官方 README 概括了 Auron 的工作方式:"Auron takes a fully optimized physical plan from a distributed computing framework, mapping it into DataFusion's execution plan, and performs native plan computation."(来源:官方 README,查询日期 2026-10-18)由此可拆出三层:
- 框架接入层:以 Spark 插件(JAR + 配置扩展)形式接入,接管 Spark 优化器输出的物理计划;
- 计划转换层:将 Spark 物理算子逐个映射为 DataFusion 执行计划节点;无法映射的算子保留在 Spark 侧执行(Fallback);
- 原生执行层:Rust 编写的原生算子基于 Arrow 列式批次计算,充分利用 SIMD 指令;原生与 JVM 算子可在同一执行计划中共存。
3.2 核心概念(来源:官方 README "Native conversion diagnostics in the Spark UI" 节)
| 概念 | 含义 |
|---|---|
| SQL execution / SQL ID | Spark 跟踪的一次 SQL 执行,可包含多个 job 与 stage |
| Physical plan / operator | Spark 的物理计划,节点即扫描、过滤、连接、聚合等算子 |
| Native conversion | Auron 将受支持的 Spark 算子转换为原生引擎算子,同一计划可同时含原生与 Spark 算子 |
| Fallback | 算子保留在 Spark 执行,并记录未转换原因;不等于执行失败 |
| Conversion snapshot | 计划转换后的诊断快照,含物理计划文本、逐节点转换状态与 Fallback 原因 |
| AQE | Spark 自适应查询执行机制,可能在同一次执行中触发多次计划转换 |
3.3 关键工程机制
官方 README 列出的生产级优化包括:多级内存管理、紧凑化 shuffle 格式、自适应执行策略,均为大规模部署实践沉淀(来源:官方 README "Production-hardened optimizations")。Spark 侧 shuffle 由 AuronShuffleManager 接管(见 5.2 配置),ORC 原生解码批次大小可经 spark.auron.orc.batchSize 调节。
四、功能特性
依据官方 README(查询日期 2026-10-18),Auron 8.0.0-incubating 的能力可归纳为:
- 原生执行:Rust 实现,规避 JVM 开销,性能可预期;
- 向量化计算:基于 Apache Arrow 列式格式,批处理充分受益于 SIMD 指令;
- 可插拔架构:与 Apache Spark 无缝集成,并面向未来扩展至其他引擎;
- 生产硬化优化:多级内存管理、压缩 shuffle 格式、自适应执行策略;
- 可扩展点(依托 DataFusion 扩展机制):多种对象存储、算子、简单与聚合函数、文件格式;
- 可观测性:Spark UI 提供 Auron 标签页,展示逐 SQL 执行的转换快照、物理计划、逐算子 Fallback 原因与 Spark SQL 指标;诊断记录沿用
spark.sql.ui.retainedExecutions清理,支持配合事件日志在 History Server 侧回放(需将 Auron JAR 放入 History Server classpath)。
五、快速上手
以下步骤引自官方 README(Build from source / Run Spark Job with Auron Accelerator 节,来源:https://github.com/apache/auron/blob/master/README.md ,查询日期 2026-10-18),本文未做本地实测。
5.1 构建前置与构建
- 安装 Rust(原生执行库为 Rust 编写,需 nightly 工具链,推荐 rustup 安装);
- 安装 JDK(官方例行测试 JDK 8、11、17,并测试 JDK 21),正确设置
JAVA_HOME; - 检出源码后用统一脚本构建:
./auron-build.sh --help查看全部选项;支持本地或经统一构建环境两种模式,产物为全依赖 fat JAR,位于target/(本地构建)或另一种模式对应的产物目录(目录名以官方 README 为准)。
5.2 以 Spark 作业启用加速
- 将 Auron JAR 放入 Spark 客户端 classpath(通常为
spark-xx.xx.xx/jars/); - 在
spark-xx.xx.xx/conf/spark-default.conf增加官方示例配置:
spark.auron.enable true
spark.sql.extensions org.apache.spark.sql.auron.AuronSparkSessionExtension
spark.shuffle.manager org.apache.spark.sql.execution.auron.shuffle.AuronShuffleManager
spark.memory.offHeap.enabled false
# suggested executor memory configuration
spark.executor.memory 4g
spark.executor.memoryOverhead 4096
- 提交查询即可,例如官方示例:
spark-sql -f tpcds/q01.sql。
5.3 打开原生转换诊断
官方 README 给出的 UI 开关(写于 conf/spark-defaults.conf 或以 --conf key=value 形式传入):
spark.ui.enabled true
spark.auron.ui.enabled true
随后在 Spark UI 打开 Auron 标签页(直达路径 http[s]://<spark-ui-host>:<spark-ui-port>/auron/),按 SQL ID 查看转换快照、逐算子 Fallback 原因、物理计划与指标。
六、适用场景与限制
适用场景(依据 3.1/3.3 的架构特征与官方性能基准表述):
- 以 Spark SQL/DataFrame 为主的批量分析、报表与 TPC-DS 类即席查询,希望不改动 SQL 代码即获得加速;
- 数据规模大、扫描/过滤/聚合/连接占主导、GC 压力明显的作业;
- 已有 Spark 集群,愿意以加装 JAR + 配置的轻量方式引入原生引擎的团队。
限制与注意(来源:官方 README 与版本事实,查询日期 2026-10-18):
- 当前引擎集成以 Apache Spark 为主,"扩展至其他引擎"属官方规划;
- 不支持的算子/表达式会 Fallback 回 Spark 执行,收益取决于原生转换覆盖率,应结合 UI 诊断逐作业评估;
- 孵化期项目,版本号带
-incubating,API/配置键在版本间可能调整,升级需跟随 Release Notes; - 原生层为 Rust,构建链路需要 Rust nightly 工具链与 JDK 共存的构建环境。
七、同类选型对比
对比对象为"Spark 原生向量化/原生执行加速"方向的同类项目;数据均为 2026-10-18 查询:GitHub stars 取自对应仓库页面,版本取自 GitHub Releases/官网。
| 项目 | 许可 | 社区活跃度(stars + 最近发版) | 版本节奏 | 兼容矩阵 |
|---|---|---|---|---|
| Apache Auron 8.0.0-incubating | Apache-2.0 | ~1.8k stars;最新发版 2026-07-18 | 孵化期,自 2025 年起 6.x→8.x 稳定推进,约每季度一个大版本 | JDK 8/11/17(测 21);Spark(主);Rust nightly 构建 |
| Apache Gluten(incubating) | Apache-2.0 | ~1.6k stars;最新 tag v1.7.0(GitHub Releases) | 沿 1.x 线推进 | Spark(+ Velox/ClickHouse 后端) |
| Apache DataFusion Comet | Apache-2.0 | ~1.3k stars;最新 tag v1.1.0(GitHub Releases) | 随 DataFusion 社区滚动发布 | Spark + DataFusion(Rust) |
| Apache Velox(LF 项目) | Apache-2.0 | ~4.2k stars(仓库 facebookincubator/velox) | Meta 主导,高频发布,以 commit 流为主 | 自建引擎生态(Presto/Spark connector 等),非 Spark JAR 即插式 |
选型建议:若诉求是"不重写 SQL、以最小侵入方式给存量 Spark 集群提速",Auron、Gluten、Comet 三者中,Auron 胜在生产硬化诊断(Spark UI Auron 标签页 + Fallback 原因)与独立的 8.0.0 版本线,Gluten 胜在双后端(Velox/ClickHouse)积累,Comet 胜在与 DataFusion 上游协同紧密;Velox 更偏"被集成的原生引擎库",适合自研平台,不适合直接替换 Spark 插件。孵化期版本发布与命名变动风险需在选型时纳入评估。
八、参考链接
- Apache Auron 官网:https://auron.apache.org/
- 官方 README(master):https://github.com/apache/auron/blob/master/README.md
- GitHub Releases:https://github.com/apache/auron/releases
- ASF 官方发布目录:https://downloads.apache.org/incubator/auron/
- Apache DataFusion:https://arrow.apache.org/datafusion/
- Apache Gluten(incubating) 仓库:https://github.com/apache/incubator-gluten
- Apache DataFusion Comet 仓库:https://github.com/apache/datafusion-comet
- Apache Velox 仓库:https://github.com/facebookincubator/velox
本文为 A1 认知篇,全部信息基于官方公开来源联网查证(查询日期 2026-10-18),未做本地安装实测;安装实测属 B1 安装指南职责。