Bolt 使用 C++ 实现的向量化执行引擎、结合运行时 LLVM Codegen 代码生成技术,大幅提升了多核 CPU 的并行执行性能效率。在分布式 SQL 查询引擎 Spark 和 Presto 上,替换传统的 Java 引擎,比开源产品性能提升了2~5倍,大幅提升了查询速度、降低了资源成本。
本文将介绍如何在Serverless EMR中使用Bolt。
当创建独占队列时,可选择 Runtime 为 Bolt,为队列开启 on bolt,运行在该队列 Default 计算组的作业将默认运行在 Bolt 环境。
如不希望使用Bolt环境,可手动指定参数:set emr.serverless.bolt.enabled=false。
要在已有的队列开启 Bolt,可通过编辑计算组,更新 Runtime 的方式实现。修改 runtime 为 Bolt 后保存,会在队列默认开启 bolt。
如希望在公共队列或非 bolt 独占队列上实现 on bolt,可通过作业参数实现作业级别开启 on bolt。
set emr.serverless.bolt.enabled=true
当创建 spark warehouse 和 presto warehouse 时,可选择 Runtime 选项为 Bolt,为计算组开启 on bolt,创建计算组 Runtime 值默认与所属队列一致。开启 Bolt 的计算组将默认运行在 bolt 环境,如 bolt 执行失败后自动路由至默认环境。
针对 spark 计算组,可通过编辑计算组,打开 Bolt。开启 bolt 需重启计算组。
对于 presto 计算组,暂时不支持编辑的方式开启 bolt,如需开启,需要重建 presto 计算组。
Bolt 当前属于测试阶段,暂未开始收费。
系统会为每个队列创建 E-MapReduce-Serverless / Bolt 按量 CU 时/按量计费订单。
Bolt 计费为按量付费,后付费模式。Bolt 计费规则为:作业运行/计算组运行 CUH * Bolt 单价。
Bolt CUH 定义 | ||
|---|---|---|
使用场景 | 单位 | 适用场景 |
spark cli(包括独占队列 Default 计算组和公共队列) | CU/小时 | 作业运行 CUH |
CU/小时 | ||
spark 计算组 | CU/小时 | 计算组运行 CUH |
presto 计算组 | CU/小时 | 计算组运行 CUH |
付费方式 | Region | 计费单元 | 刊例价 | 单位 | 适用场景 |
|---|---|---|---|---|---|
按量付费 | 华北2(北京) | CU·时 | 0.07 元 | CU/小时 | 公共队列:Spark |
华东2(上海) | CU·时 | 0.07 元 | CU/小时 | ||
华南1(广州) | CU·时 | 0.07 元 | CU/小时 | ||
亚太东南(柔佛) | CU·时 | 0.12 元 | CU/小时 | ||
华北2(北京)自动驾驶云 | CU·时 | 0.07 元 | CU/小时 |
计算模型如下(国内):
费用预估:
计费方式 | 费用 | 说明 |
|---|---|---|
计算资源-按量付费 | 0.224 元=16CU · 时 * 0.07 | 后付费 |
CU · 时计算公式:MAX(4×1, 向上取整(16×1/4)) CU× 4 时= 16 CU · 时。
计算模型如下(国内):
费用预估:
计费方式 | 费用 | 说明 |
|---|---|---|
计算资源-按量付费 | 1.344 元=96CU · 时* 0.07 | 后付费 |
CU · 时计算公式:MAX(4×1, 向上取整(16×1/4)) CU× 24 时= 96 CU · 时。