【Gluten】Spark 的向量化执行引擎框架 Gluten

Gluten项目通过整合ApacheSpark与多种Native后端(如Velox、Clickhouse等),加速计算并支持数据格式转换,提供数据传输和内存管理优化。其FallbackProcessing机制确保兼容性,而glutenshuffle专注于列式数据shuffle。对于调试,支持跨Spark和Native库的排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Gluten 项目主要用于“粘合” Apache Spark 和作为 Backend 的 Native Vectorized Engine。Backend 的选项有很多,目前在 Gluten 项目中已经明确开始支持的有 Velox、Clickhouse 和 Apache Arrow。通过使用Native backend 执行计算,加速 Spark 执行速度,目前在TPCH 测试中使用 velox backend 得到了最多3.6倍加速。下图为 Gluten 整体架构
在这里插入图片描述

plan conversion

spark physical plan 作为输入,使用 substrait 将其转换为 substrait plan,substrait plan作为一个统一的执行计划传递给不同的 native library,在不同的 library 中执行相同的的 pipeline,使用 library自己的算子执行 pipeline
在这里插入图片描述

buffer passing & sharing

gluten 提供两种方法来进行 spark JVM 和 native engine 之间的数据传输,如下图所示

  1. 下图中的绿线。使用 apache arrow 作为内存数据格式,将 velox 中的 velox 格式数据转换为 arrow 格式,使用 arrowColumnarVec
### Photon 引擎简介 Databricks 的 Photon 是一种高性能查询引擎,旨在显著提升 Apache Spark执行效率。该子系统的引入使得 Apache Spark 可以通过向量化执行和其他优化手段大幅提高其处理能力[^1]。 #### 向量化执行 Photon 使用了向量化执行技术,这是一种批量处理方法,能够一次性操作多个数据记录而不是逐条处理单个记录。这种方法减少了控制流开销,并充分利用现代 CPU 架构中的 SIMD(Single Instruction Multiple Data)指令集,从而提升了整体性能。 #### 集成与兼容性 尽管 Photon 提供了原生支持和高度优化的功能,但它仍然保持了与现有 Apache Spark 生态系统的完全兼容性。这意味着用户无需更改现有的工作负载即可享受更高的运行速度。这种无缝衔接的设计理念确保了迁移过程简单高效。 #### 性能改进 实验表明,在多种实际场景下应用 Photon 子系统后,Apache Spark 查询的整体响应时间得到了明显缩短。特别是在大规模数据分析任务中表现尤为突出,这得益于更高效的内存管理和更低的 I/O 成本。 ```python from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("Photon Example") \ .config("spark.sql.execution.arrow.pyspark.enabled", "true") \ .getOrCreate() df = spark.range(1 << 20).repartition(8) result = df.groupBy(df.id % 1000).count() result.show() ``` 上述代码片段展示了如何启用 Arrow 支持以及创建一个简单的 DataFrame 来测试 Photon 的性能优势。 ### 开发背景与其他方案对比 值得注意的是,虽然 Gluten 和 Photon 在某些方面存在相似之处——比如都追求极致的速度增益——但它们各自的发展路径却是相对独立完成的。然而从行业趋势来看,除非具备极高的性价比或者特殊需求驱动,自行研发执行引擎往往并不是明智之举;相反,合理评估并灵活选用不同的开源解决方案才是更为现实的选择策略[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值