Blaze:基于Rust加速器用更少资源加速Spark作业


超快的查询执行引擎使用 Apache Spark 语言,并以 Arrow-DataFusion 为核心。

Apache Spark 的 Blaze 加速器利用本机矢量化执行来加速查询处理。它结合了Apache Arrow-DataFusion库的强大功能和 Spark 分布式计算框架的规模。
Blaze 从 Spark 获取一个完全优化的物理计划,将其映射到 DataFusion 的执行计划中,并在 Spark 执行器中执行本机计划计算。
Blaze 由以下高级组件组成:

  • Blaze Spark 扩展:将整个加速器连接到 Spark 执行生命周期中。
  • Native Operators:定义每个 SparkPlan 如何映射到其本机执行对应项。
  • JNI 网关:通过 JNI 边界传递数据和控制。
  • Plan SerDe:使用 protobuf 对 DataFusion 计划进行序列化和反序列化。
  • Columnarized Shuffle:以 Arrow-IPC 格式组织的 shuffle 数据文件。

基于 DataFusion 固有的明确定义的可扩展性,Blaze 可以轻松扩展以支持:
  • 各种对象存储。
  • 运营商。
  • 简单和聚合函数。
  • 文件格式。