news 2026/7/27 18:15:40

Apache Gluten终极指南:让JVM SQL引擎性能飙升的原生执行方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Apache Gluten终极指南:让JVM SQL引擎性能飙升的原生执行方案

Apache Gluten终极指南:让JVM SQL引擎性能飙升的原生执行方案

【免费下载链接】glutenGluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines.项目地址: https://gitcode.com/GitHub_Trending/glu/gluten

Apache Gluten是一个强大的中间层解决方案,专为将基于JVM的SQL引擎执行卸载到原生引擎而设计。它能够显著提升SQL引擎的性能,为大数据处理带来新的突破。无论你是数据工程师、开发人员还是大数据爱好者,本指南都将带你全面了解Apache Gluten的核心功能、架构优势、性能表现以及快速上手的方法。

为什么选择Apache Gluten?

在当今数据量爆炸的时代,JVM SQL引擎面临着越来越大的性能压力。Apache Gluten应运而生,它通过创新的原生执行方案,为解决这一难题提供了全新的思路。

传统的JVM SQL引擎在处理大规模数据时,往往受到JVM内存管理、垃圾回收等因素的限制,导致性能瓶颈。而Apache Gluten通过将执行逻辑卸载到原生引擎,充分利用了原生代码的高效性和资源管理能力,从而实现了性能的大幅提升。

核心优势

Apache Gluten具有以下几个核心优势:

  1. 卓越的性能提升:通过原生执行方案,显著提高SQL查询的执行速度,降低延迟。
  2. 广泛的兼容性:支持多种JVM SQL引擎和原生后端,如Spark与Velox、ClickHouse等的集成。
  3. 丰富的功能支持:涵盖了大量的SQL函数和操作符,满足复杂查询需求。
  4. 易用的用户界面:提供直观的UI界面,方便监控和管理Gluten的运行状态。

Apache Gluten架构解析

Apache Gluten的架构设计精巧,它作为中间层连接JVM SQL引擎和原生执行引擎,实现了高效的执行卸载。

ClickHouse后端架构

ClickHouse后端是Apache Gluten的重要组成部分,其架构如图所示:

从图中可以看出,Spark通过Gluten SparkPlugin与ClickHouse后端进行交互。ClickHouse Spark Catalog基于Spark DataSource V2和Delta,实现了数据的高效访问。Substrait Plan作为执行计划的桥梁,将查询任务分发到各个Executor节点。每个Executor节点中,Gluten与libch.so协同工作,从JuiceFS等存储系统中读取数据,并最终将结果存储到对象存储中。

执行流程

Apache Gluten的执行流程清晰高效,如图所示:

Transformer是执行流程的核心,它负责将SQL查询转换为一系列的执行操作。Parquet Read操作读取数据,Project操作进行列选择和投影,Aggregate操作进行聚合计算。Columnar Shuffle和Columnar Exchange operator则负责数据的高效传输和交换,确保整个执行过程的流畅性。

性能表现:让SQL引擎如虎添翼

Apache Gluten的性能表现令人印象深刻,通过与原生Spark的对比测试,充分展示了其在提升SQL引擎性能方面的巨大潜力。

TPC-H查询性能对比

在TPC-H Likely工作负载的10个查询中,Gluten + Velox后端与Vanilla Spark3.1.1的性能对比结果如下:

从柱状图中可以清晰地看到,在各个查询(q4、q22、q15、q14、q12、q6、q1、q19、q3、q13)中,Gluten + Velox后端的执行速度均优于Vanilla Spark3.1.1,其中q4查询的性能提升最为显著,Gluten + Velox的执行时间约为3.63,而Vanilla Spark3.1.1则为更高的值,充分证明了Apache Gluten在提升SQL查询性能方面的卓越能力。

内存使用分析

Apache Gluten不仅在执行速度上有优势,在内存管理方面也表现出色。通过内存分析工具,可以直观地了解Gluten的内存使用情况:

该图展示了Gluten在执行过程中的内存分配和释放情况,帮助开发人员更好地理解和优化内存使用,进一步提升系统性能。

执行追踪与监控

为了方便开发人员进行性能调优和问题排查,Apache Gluten提供了强大的执行追踪功能:

通过Trace-viewer界面,可以详细查看各个执行阶段的时间分布、函数调用等信息,精准定位性能瓶颈,为系统优化提供有力支持。

功能与兼容性

Apache Gluten支持丰富的功能,并且与多种组件具有良好的兼容性,能够满足不同场景下的需求。

函数支持情况

Apache Gluten支持大量的SQL函数,其与Spark和Velox的函数支持情况如图所示:

图中展示了Spark支持387个函数,Velox支持204个函数,而Gluten支持164个函数,其中127个函数是Spark和Velox共同支持的,充分体现了Gluten在函数兼容性方面的优势。

操作符架构

Apache Gluten的操作符架构设计灵活,能够高效地处理各种SQL操作:

该架构基于SparkPlan,通过SubstraitTransformerSupport、UnaryExecNode、BinaryExecNode和LeafExecNode等组件,实现了对不同类型操作符的支持,如SubstraitTransformerExec、ConditionProjectExecTransformer、HashJoinTransformer和DataSourceScanTransformer等,确保了SQL查询的高效执行。

用户界面

Apache Gluten提供了直观易用的用户界面,方便用户监控和管理查询执行情况:

在Gluten SQL/DataFrame界面中,用户可以查看Gluten的构建信息,包括后端类型、版本、修订时间等。同时,还可以查看查询列表,了解每个查询的描述、Gluten节点数量和回退节点数量等信息,帮助用户实时掌握系统运行状态。

快速上手:从零开始使用Apache Gluten

环境准备

在开始使用Apache Gluten之前,需要准备好相应的环境。确保你的系统满足以下要求:

  • Java 8或更高版本
  • Scala 2.12或更高版本
  • Spark 3.1.1或兼容版本

安装步骤

  1. 克隆Apache Gluten仓库:
git clone https://gitcode.com/GitHub_Trending/glu/gluten
  1. 进入项目目录:
cd gluten
  1. 按照项目文档中的说明进行编译和安装。具体的编译步骤可以参考项目中的docs/get-started/getting-started.md文件。

配置与使用

安装完成后,需要进行相应的配置才能使用Apache Gluten。你可以通过修改Spark的配置文件,启用Gluten插件,并指定使用的后端引擎(如Velox或ClickHouse)。

配置完成后,你就可以像使用普通Spark一样提交SQL查询,Apache Gluten会自动将符合条件的执行逻辑卸载到原生引擎,从而提升查询性能。

总结

Apache Gluten作为一款强大的中间层解决方案,通过将JVM SQL引擎的执行卸载到原生引擎,为大数据处理带来了显著的性能提升。其卓越的架构设计、丰富的功能支持和良好的兼容性,使其成为提升SQL引擎性能的理想选择。

无论你是在构建大规模数据处理平台,还是在优化现有的SQL查询性能,Apache Gluten都能为你提供有力的支持。希望本指南能够帮助你快速了解和上手Apache Gluten,让你的JVM SQL引擎性能飙升!

如果你想深入了解Apache Gluten的更多细节,可以查阅项目的官方文档,如docs/developers/NewToGluten.md等,获取更全面的信息。让我们一起探索Apache Gluten的无限可能,为大数据处理注入新的活力!

【免费下载链接】glutenGluten is a middle layer responsible for offloading JVM-based SQL engines' execution to native engines.项目地址: https://gitcode.com/GitHub_Trending/glu/gluten

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/27 18:08:01

如何安装BeautifulDiscord?3分钟快速上手教程

如何安装BeautifulDiscord?3分钟快速上手教程 【免费下载链接】BeautifulDiscord Adds custom CSS support to Discord. 项目地址: https://gitcode.com/gh_mirrors/be/BeautifulDiscord BeautifulDiscord是一款简单的Python脚本,能够为Discord添…

作者头像 李华
网站建设 2026/7/27 18:06:16

如何快速提升学术论文质量:研究者的完整写作框架指南

如何快速提升学术论文质量:研究者的完整写作框架指南 【免费下载链接】Research-Paper-Writing-Skills Skill package for ML/CV/NLP paper writing, curated and adapted from Prof. Peng Sidas open notes for Codex, Claude Code, and Gemini. 项目地址: https…

作者头像 李华
网站建设 2026/7/27 18:06:07

从入门到精通:PyTorch Geometric图神经网络实战完全指南

从入门到精通:PyTorch Geometric图神经网络实战完全指南 【免费下载链接】pytorch_geometric Graph Neural Network Library for PyTorch 项目地址: https://gitcode.com/GitHub_Trending/py/pytorch_geometric 你是否曾被复杂的图结构数据困扰?当…

作者头像 李华