Apache Gluten 1.7.0 介绍与选型指南

基于官方仓库实查(2026-10-18)的 Apache Gluten 1.7.0 认知篇:Spark 执行下推中间层架构、Velox/CH 双后端与 Velox/Auron/ClickHouse 选型对比。

Apache GlutenApache Gluten2026/10/18

Apache Gluten 1.7.0 介绍与选型指南

目标:基于官方仓库、官方发布公告与官方渠道(查询日期 2026-10-18),介绍 Apache Gluten 1.7.0 的定位、核心架构、功能特性与同类 Spark 原生加速方案选型建议。本文为认知篇,全部论断溯源至官方来源,不做本地安装实测。

一、信息基准

  • 查询日期:2026-10-18(Asia/Shanghai)。
  • 本次介绍的版本:Apache Gluten 1.7.0。

1.1 版本依据

项目结论依据来源查询日期
最新稳定版1.7.0(tag v1.7.0)GitHub Releases:apache/gluten 最新 release 为 v1.7.0,发布时间 2026-08-26(https://github.com/apache/gluten/releases)2026-10-18
项目身份Apache 顶级项目:2026-02-18 毕业出孵化器,ASF 于 2026-03-05 正式公告孵化器状态页(https://incubator.apache.org/projects/gluten,原文「The Gluten project graduated on 2026-02-18」);ASF 公告(https://news.apache.org/foundation/entry/the-apache-software-foundation-graduates-two-open-source-projects-from-incubator)2026-10-18
仓库迁移代码仓库已由 apache/incubator-gluten 迁移为 apache/gluten(毕业动作的一部分)https://github.com/apache/gluten 实查2026-10-18
社区活跃度1,606 stars、最近推送 2026-10-17GitHub API 实查(https://api.github.com/repos/apache/gluten)2026-10-18

1.2 官方来源清单

💡 说明:Gluten 曾以 apache/incubator-gluten 名义发布(v1.2.0-v1.5.1 等孵化期版本),检索历史资料时两个仓库名并存;2026-02-18 毕业后官方品牌为「Apache Gluten™」,不含 -incubating 后缀。

二、软件概述

Apache Gluten 1.7.0 是 Spark SQL 的中间层加速插件:官方定位为「负责把基于 JVM 的 SQL 引擎的执行下推(offload)到原生引擎的中间层」(孵化器描述原文:Gluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines)。它以 Spark 插件 jar 形态部署在计算集群,没有独立常驻服务,采用 Apache License 2.0(GitHub 仓库 license 字段实查)。

工作方式概括:Gluten 拦截 Spark 的物理执行计划,把能下推的算子/表达式转换为向量化原生执行(当前主力后端为 Velox),无法下推的算子自动回退到 Spark 原生 JVM 执行;数据面通过列式内存格式在 JVM 与原生层之间传递。ASF 公告对其价值的表述是「显著加速 Spark SQL 与 DataFrame 工作负载」。

项目沿革与节奏:Gluten 进入孵化器后以较快的节奏演进(v1.2.0 起),2026-02-18 毕业,2026-08-26 发布毕业后的第一个大版本 1.7.0(v1.5.1 → v1.7.0 跨越了孵化期与毕业期)。从 1.7.0 的 release 内容看,社区同时在推进 Velox 后端与 ClickHouse 后端(Delta 写入、GPU CI、shuffle writer 优化等条目),仓库推送保持高频(pushed 2026-10-17,实查)。

三、核心架构

3.1 中间层与计划下推

Gluten 位于 Spark SQL 与原生执行引擎之间:Spark 完成物理计划优化后,Gluten 将其中可向量化执行的部分翻译为原生执行计划交由后端执行,其余部分保留在 JVM 上按原有路径执行,形成「混合执行」的容错设计。这一「能下推则下推、不能则回退」的机制是 Gluten 区别于整体替换型引擎的关键。

3.2 后端体系(Pluggable Backend)

Gluten 的后端可插拔,官方维护两条主线:

  • Velox 后端:基于 Meta 开源的 Velox C++ 向量化执行库,是当前使用最广、成熟度最高的后端(release 条目与 docs 均以 VL 为主线)。
  • ClickHouse 后端(CH):基于 ClickHouse 引擎能力的后端,与 Velox 后端并行演进(v1.7.0 release 中存在 CH 条目)。

来源:GitHub Releases v1.7.0 变更清单(VL/CH 前缀条目,2026-10-18 实查)。

3.3 数据面:列式内存与 shuffle

下推执行要求数据以列式格式在 JVM 与原生内存间高效传递;Gluten 针对列式转换与 shuffle 写出做了大量原生优化(v1.7.0 中包含原生统计追踪消除 C2R 开销、shuffle writer 重构等条目),并提供 native 层的算子扩展(如 WindowGroupLimitExec 的 Rank/DenseRank 支持)。

3.4 兼容与回退机制

对不支持的函数/算子/DDL,Gluten 按配置回退到 Spark 语义执行,保证功能正确性优先;版本对齐方面,官方构建矩阵覆盖 Spark 3.x 多个次版本与 Spark 4.x(v1.7.0 变更涉及 Spark 4.1 支持),用户按集群 Spark 版本选择对应构建产物。

四、功能特性

  • Spark SQL/DDataFrame 透明加速:无需改写业务 SQL,加载插件 + 配置参数即可启用(官方部署文档口径)。
  • 双后端:Velox 后端与 ClickHouse 后端可插拔,按基础设施与功能覆盖选择。
  • 混合执行与自动回退:不支持的部分自动落回 Spark,避免整体迁移风险。
  • 原生列式执行:基于 Velox/CH 的向量化引擎,充分发挥 SIMD 与列式内存优势。
  • 湖仓格式协同:v1.7.0 包含 Delta 写入的原生统计追踪、以及 Parquet/ORC 读取链路的持续优化(release 条目实查)。
  • GPU 探索:社区维护 GPU CI 通道(v1.7.0 含 GPU CI 相关条目,处于工程化推进状态)。
  • 版本覆盖:构建产物覆盖 Spark 3.4/3.5/4.0/4.1 等版本线(官方 release 与 CI 矩阵口径)。

五、快速上手

Gluten 的官方「上手」形态是把插件部署到既有 Spark 集群。以下步骤要点整理自官方仓库部署文档(docs/deployment-gnu.md 等 docs 目录文件,2026-10-18 实查目录结构),未做本地实测。

(1)获取发布 jar:从 GitHub Releases 下载对应 Spark 版本的构建包(如 velox 后端的 gluten-velox-bundle-spark3.5_2.12 系列 jar)。

(2)把 bundle jar 放入 Spark jar 路径并在 spark-defaults.conf 或提交参数中启用插件(官方文档给出的核心配置骨架,具体键名以官方 docs/deployment 文档为准):

spark.plugins=org.apache.gluten.GlutenPlugin
spark.memory.offHeap.enabled=true
spark.memory.offHeap.size=8g
spark.sql.catalogImplementation=hive

(3)按后端设置原生库相关参数(Velox 后端为 bundle 自带;ClickHouse 后端需额外安装原生库),随后正常提交 Spark 作业即可观察到算子下推。

(4)验证:官方 docs 提供 fallback 监控与调优文档(可通过 Spark UI 中 Gluten 指标观察下推与回退情况),详见 https://github.com/apache/gluten/tree/main/docs 。

⚠️ 提示: Gluten 的参数面随版本演进较快,不同 Spark/后端组合的可用参数不同,生产部署前请以所用版本的官方 docs 为准(本文不做参数级承诺)。

六、适用场景与限制

6.1 适用场景

  • Spark SQL 批处理提效:ETL、报表、湖仓(Delta/Iceberg/Hudi + Parquet/ORC)扫描聚合类负载,CPU 成本主导的场景收益最直接。
  • 存量 Spark 集群加速:保留 Spark 调度/生态,用插件方式注入原生执行,替代「迁移到全新引擎」的方案。
  • 多后端基础设施团队:有能力维护 Velox 或 ClickHouse 原生库,追求执行层可插拔。

6.2 限制与注意

  • 依赖原生二进制:需要与集群 OS/CPU/Spark 版本匹配的构建产物;原生库部署与运维是主要复杂度来源。
  • 覆盖度非 100%:不支持的算子/函数回退 JVM 执行,性能收益与负载的下推比例强相关,POC 时应实测自家 SQL 集合。
  • Spark 版本耦合:每个 Gluten 版本只覆盖特定 Spark 版本矩阵,升级 Spark 通常需要同步升级 Gluten。
  • 后端选型成本:Velox 与 CH 后端能力矩阵有差异(文档与 release 条目可见),切换后端属于工程决策而非配置开关。

七、同类选型对比

对比口径说明:三者均为「Spark 原生/向量化加速」赛道的代表方案;版本与活跃度于 2026-10-18 经官方渠道实查(auron.apache.org、GitHub API、clickhouse.com)。

维度Apache Gluten 1.7.0Velox(Meta 开源)Apache Auron 8.0.0(原 Blaze)ClickHouse 26.9(加速器视角)
许可Apache-2.0Apache-2.0(GitHub license 实查)Apache-2.0Apache-2.0
定位Spark 执行下推中间层(可插拔后端)原生向量化执行库(被 Gluten/Spark-Ignite 等用作后端)面向大数据引擎的原生加速器(基于 Apache DataFusion)自成体系的 OLAP 数据库(可作 Gluten 后端)
集成形态Spark 插件 jar + 原生库C++ 库,需引擎侧集成Spark 插件(DataFusion 基座)独立数据库
治理Apache 顶级项目(2026-02-18 毕业)Meta 主导开源社区Apache 孵化器项目(auron.apache.org)ClickHouse 公司主导
社区活跃度1,606 stars,pushed 2026-10-17(GitHub API 实查 2026-10-18)4,231 stars,pushed 2026-10-17(GitHub API 实查 2026-10-18)1,825 stars,pushed 2026-10-17(GitHub API 实查 2026-10-18)50,464 stars,pushed 2026-10-18(GitHub API 实查 2026-10-18),月度大版本
最近发版v1.7.0(2026-08-26,GitHub Releases)无常规版本化发布,main 持续演进(GitHub 实查)8.0.0-incubating(2026-07-18,auron.apache.org)26.9(2026-09-23,clickhouse.com)
版本节奏大版本 + 高频 CI滚动主干版本线较新(7.0 于 2026-02、8.0 于 2026-07)月度版本 + LTS(26.8 为 LTS)
引擎覆盖Spark 3.4-4.1 多版本构建矩阵引擎侧各自集成Spark 为主,架构上预留其他引擎扩展独立部署(Spark 联邦读取走生态连接器)
兼容矩阵与 Spark 版本/OS/CPU 强相关由集成引擎定义与 Spark 版本相关(官方归档页)独立运行时,跨平台包

选型建议:存量 Spark 集群追求「最小迁移成本 + 最大下推生态」,Gluten(Velox 后端)是当前生态共识方案;想要 DataFusion 系实现并接受较新项目,关注 Apache Auron(原 Blaze);本身就是 OLAP 场景而非 Spark 批处理,直接评估 ClickHouse;Velox 更适合作为引擎研发团队的自研基座而非直接部署物。

八、参考链接