You need to enable JavaScript to run this app.
文档中心
E-MapReduce

E-MapReduce

复制全文
下载 pdf
高阶使用
Spark on Native 引擎:Bolt
复制全文
下载 pdf
Spark on Native 引擎:Bolt

Bolt 简介

Bolt 引擎是字节跳动开源的新一代原生执行引擎,面向企业级数据分析场景提供统一、高性能、可扩展的计算底座。它并不是为 Spark 单独定制的加速组件,而是以 “适配任意框架、运行于任意硬件、对接任意数据源” 为目标设计,可灵活接入 Spark、Presto、Flink 等主流计算框架,为多样化数据平台提供一致的原生加速能力。通过统一接口与可插拔架构,Bolt 引擎在帮助客户保障开放兼容的同时,能够进一步释放底层算力价值,实现更高性能、更低资源消耗和更强生态延展性。

说明

用户在使用 Bolt 加速能力时,将按照实际作业消耗的 CUH 支付相应的加速费用,详细计费规则请参见Bolt 加速引擎计费详情。

设计理念:从“M × N”走向“M + N”

传统大数据平台往往面临多引擎、多数据源、多硬件、多特性并行演进带来的复杂适配问题。每增加一种执行引擎、一类数据源或一项能力增强,都会带来额外的开发、维护和优化成本,最终形成 “M × N” 式的复杂度放大。
Bolt 的核心设计理念,就是通过统一的原生执行与加速能力,将这种多维适配复杂度尽可能收敛。
Image

  • 通过衔接层承接上层引擎的物理执行计划。
  • 在底层提供统一的算子能力、资源管理能力和执行优化能力,从而在保留现有 Spark 兼容性的同时,把性能优化沉淀到统一的原生执行层中。对客户而言,这意味着无需改变原有 Spark 使用方式,就可以在现有体系内获得更高性能、更低资源消耗和更强扩展性的执行能力。

技术优化:围绕 “求同存异” 释放执行潜力

Bolt 的技术路线可以概括为 “求同存异”。

  • “求同”:是围绕不同引擎在底层执行中共有的性能瓶颈进行统一优化,尽可能提升 CPU、内存、磁盘等资源的使用效率;
  • “存异”:则是尊重不同引擎、不同算子在行式和列式处理上的天然差异,避免为了追求统一而引入额外开销。

基于这一理念,Bolt 重点在以下几个方向进行了持续优化。

运行时自适应决策

根据真实运行时数据动态选择更合适的执行策略,例如在排序、HashBuild、HashJoin 等场景中结合数据特征、分区倾斜和内存使用情况进行动态调整,从而减少固定阈值带来的性能损耗。

热点路径优化

围绕大数据执行中的共性热点,在 IO、表达式执行和比较路径上做针对性优化。例如通过异步 IO 提升 spill 等场景下的吞吐表现,并通过 JIT/CodeGen 优化 Sort、Agg、Join 等关键算子的热点路径。

Image

Image

减少行列转换开销

针对复杂查询中的 Sort、Window、Shuffle、Spill 等关键路径,Bolt 通过算子融合、RowBasedSpill、RowBasedShuffle 等方式减少不必要的行列转换,进一步提升整体执行效率。

Image

Image

Image

统一底层资源管理能力

在底层统一抽象 CPU、内存、磁盘等资源管理能力,为上层 Spark 提供稳定、可扩展的原生执行能力,也为后续适配更多场景和硬件形态打下基础。
相比单纯追求某一种固定执行路径,Bolt 更强调在真实生产负载中选择更合适的执行方式,这也是其在复杂 SQL 场景下能够持续释放性能收益的重要原因。

应用实践:字节大规模生产收益与 Benchmark

Bolt 已在字节内部及多家外部客户的多个生产场景中持续落地,并在 Spark、Presto、Flink 等引擎上完成验证。目前,Bolt 在字节域内已实现 100% PrestoSQL 和约 85% SparkSQL 任务覆盖。
以 Spark 场景为例,字节域内 Java runtime 已在开源 Spark on Java 的基础上经过长期优化,整体性能较开源版本提升 2~3 倍;在此基础上,Spark on Bolt 仍可进一步带来约 1.5x 的性能提升。PrestoSQL 场景则已实现全量覆盖,并获得约 2x 的加速收益,体现出 Bolt 在大规模生产环境中的持续优化能力。

在标准基准测试方面,基于 Vanilla Spark 3.5 + Gluten + Bolt Backend 的 TPC-DS SF1000 开箱测试中,Bolt 相比开源 Velox backend 平均耗时进一步节省 22% ,TPCDS 加速比 1.22x,体现出相比开源加速引擎解决方案的差异化优势。

Bolt 集成

EMR Serverless 深度集成 Bolt 引擎

火山引擎 EMR Serverless 已深度集成 Bolt Native Engine,客户无需改造原有 Spark 使用习惯,即可在现有 Serverless Spark 体系内获得原生加速能力。针对不同业务场景,客户可以在任务运行时按需选择引擎 runtime(运行时),在保持原有 Spark SQL 兼容性与业务链路稳定性的前提下,平滑切换至 Spark on Bolt,进一步释放复杂 SQL 场景下的计算性能与资源效率。

开源社区与生态

Bolt 已正式面向开源社区开放(开源仓库:https://github.com/bytedance/bolt),并持续完善多框架、多数据源及异构硬件方向的生态能力。对于企业客户而言,也无需自行完成复杂集成,直接通过火山引擎 EMR Serverless 即可开箱即用地获得已深度集成的 Bolt 加速能力,在保持原有 Spark 生态兼容的同时,进一步提升SQL场景下的性能与资源效率。

最近更新时间:2026.09.16 19:31:59
这个页面对您有帮助吗?
有用
有用
无用
无用