快速开始

qianmoQqianmoQ· 更新于 2026-10-02· 阅读 6 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Apache Gluten 快速入门

Apache Gluten 是一个通过将执行下推到原生引擎来加速 Apache Spark SQL 的插件。它无需修改现有的 Spark SQL 查询或 DataFrame API 代码,只需进行配置更改即可。

选择后端

Gluten 支持两种原生后端:

后端说明指南
VeloxMeta 的 C++ 执行库Velox 后端
ClickHouse以原生库形式移植的列式数据库管理系统ClickHouse 后端

快速开始(Velox 后端)

1. 前置条件

  • 操作系统:Ubuntu 20.04/22.04 或 CentOS 7/8(其他 Linux 发行版可通过静态构建运行,但未经官方测试)
  • JDK:OpenJDK 8 或 17(Spark 4.x 需要 JDK 17+)
  • Spark:3.4.4、3.5.5、4.0.2 或 4.1.1
  • Scala:2.12(Spark 4.x 需要 Scala 2.13)

2. 构建

## Set JAVA_HOME (JDK 8 or 17)
export JAVA_HOME=/path/to/your/jdk
export PATH=$JAVA_HOME/bin:$PATH

## Clone and build
git clone https://github.com/apache/gluten.git
cd gluten
./dev/buildbundle-veloxbe.sh

参阅[构建指南]](https://apache.github.io/gluten/get-started/build-guide.html)了解构建选项与参数。

3. 部署

将 Gluten 的 jar 包与所需配置添加到你的 Spark 会话中。必须启用堆外内存,并且需要列式 shuffle 管理器以支持原生 shuffle:

spark-shell \
  --master yarn --deploy-mode client \
  --conf spark.plugins=org.apache.gluten.GlutenPlugin \
  --conf spark.memory.offHeap.enabled=true \
  --conf spark.memory.offHeap.size=20g \
  --conf spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
  --jars /path/to/gluten-velox-bundle-*.jar

根据您的环境调整 offHeap.size。

或者,您可以启用动态堆外内存分配(实验性功能),让 Gluten 根据 spark.executor.memory 自动管理堆外内存与堆内内存的划分:

spark-shell \
  --master yarn --deploy-mode client \
  --conf spark.plugins=org.apache.gluten.GlutenPlugin \
  --conf spark.gluten.memory.dynamic.offHeap.sizing.enabled=true \
  --conf spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
  --jars /path/to/gluten-velox-bundle-*.jar

使用动态内存分配时,不需要 spark.memory.offHeap.enabled 和 spark.memory.offHeap.size——Velox 会以堆上内存大小作为其内存预算。详情请参见 动态堆外内存分配。

有关包含执行器(executor)和驱动(driver)设置的完整示例,请参阅 Velox 后端指南。

4. 验证

运行一个简单查询,并在 Spark UI 的查询计划中查找包含 Transformer、Velox 或 Columnar 的节点,这些节点表示原生执行。

下一步

评论

登录后参与评论

正在加载评论…