Apache Auron 8.0.0-incubating 介绍与选型指南

介绍 Apache Auron 8.0.0-incubating:基于 DataFusion 的 Spark 原生向量化查询加速器,覆盖架构、特性、快速上手、限制与 Gluten/Comet/Velox 选型对比

Apache AuronApache Auron大数据与计算引擎Spark2026/10/18

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 摘要)。
  • 官方来源清单:
来源地址
项目官网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)由此可拆出三层:

  1. 框架接入层:以 Spark 插件(JAR + 配置扩展)形式接入,接管 Spark 优化器输出的物理计划;
  2. 计划转换层:将 Spark 物理算子逐个映射为 DataFusion 执行计划节点;无法映射的算子保留在 Spark 侧执行(Fallback);
  3. 原生执行层:Rust 编写的原生算子基于 Arrow 列式批次计算,充分利用 SIMD 指令;原生与 JVM 算子可在同一执行计划中共存。

3.2 核心概念(来源:官方 README "Native conversion diagnostics in the Spark UI" 节)

概念含义
SQL execution / SQL IDSpark 跟踪的一次 SQL 执行,可包含多个 job 与 stage
Physical plan / operatorSpark 的物理计划,节点即扫描、过滤、连接、聚合等算子
Native conversionAuron 将受支持的 Spark 算子转换为原生引擎算子,同一计划可同时含原生与 Spark 算子
Fallback算子保留在 Spark 执行,并记录未转换原因;不等于执行失败
Conversion snapshot计划转换后的诊断快照,含物理计划文本、逐节点转换状态与 Fallback 原因
AQESpark 自适应查询执行机制,可能在同一次执行中触发多次计划转换

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 的能力可归纳为:

  1. 原生执行:Rust 实现,规避 JVM 开销,性能可预期;
  2. 向量化计算:基于 Apache Arrow 列式格式,批处理充分受益于 SIMD 指令;
  3. 可插拔架构:与 Apache Spark 无缝集成,并面向未来扩展至其他引擎;
  4. 生产硬化优化:多级内存管理、压缩 shuffle 格式、自适应执行策略;
  5. 可扩展点(依托 DataFusion 扩展机制):多种对象存储、算子、简单与聚合函数、文件格式;
  6. 可观测性: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 构建前置与构建

  1. 安装 Rust(原生执行库为 Rust 编写,需 nightly 工具链,推荐 rustup 安装);
  2. 安装 JDK(官方例行测试 JDK 8、11、17,并测试 JDK 21),正确设置 JAVA_HOME;
  3. 检出源码后用统一脚本构建:./auron-build.sh --help 查看全部选项;支持本地或经统一构建环境两种模式,产物为全依赖 fat JAR,位于 target/(本地构建)或另一种模式对应的产物目录(目录名以官方 README 为准)。

5.2 以 Spark 作业启用加速

  1. 将 Auron JAR 放入 Spark 客户端 classpath(通常为 spark-xx.xx.xx/jars/);
  2. 在 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
  1. 提交查询即可,例如官方示例: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-incubatingApache-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 CometApache-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 插件。孵化期版本发布与命名变动风险需在选型时纳入评估。

八、参考链接

  1. Apache Auron 官网:https://auron.apache.org/
  2. 官方 README(master):https://github.com/apache/auron/blob/master/README.md
  3. GitHub Releases:https://github.com/apache/auron/releases
  4. ASF 官方发布目录:https://downloads.apache.org/incubator/auron/
  5. Apache DataFusion:https://arrow.apache.org/datafusion/
  6. Apache Gluten(incubating) 仓库:https://github.com/apache/incubator-gluten
  7. Apache DataFusion Comet 仓库:https://github.com/apache/datafusion-comet
  8. Apache Velox 仓库:https://github.com/facebookincubator/velox

本文为 A1 认知篇,全部信息基于官方公开来源联网查证(查询日期 2026-10-18),未做本地安装实测;安装实测属 B1 安装指南职责。