EMR Serverless Spark的缓存集群在计算引擎与底层存储之间提供数据缓存加速层,将热点数据预热至高速缓存介质,减少重复读取带来的 I/O 开销。适用于多次查询、交互式分析和 ETL 等场景,帮助提升查询响应速度和计算效率。本文介绍如何创建和配置 Cache 集群,并在 Spark 作业中启用缓存加速。
缓存集群简介
缓存集群是 EMR Serverless Spark 面向湖仓分析场景打造的高性能数据缓存加速层。
通过在计算引擎与底层存储之间引入缓存层,缓存集群能够将热点数据异步预热至高速缓存介质,降低重复数据读取带来的 I/O 开销。在多次查询、交互式分析、ETL 等场景下,任务可直接复用缓存数据,从而显著提升查询响应速度和计算效率。
同时,缓存集群提供统一的缓存生命周期管理能力,包括缓存策略控制、自动淘汰和资源隔离,确保 Serverless 多租户环境下的高性能与数据安全。
前提条件
-
工作空间所在地域为华北2(北京)、华东2(上海)或新加坡。当前仅这些地域支持缓存集群。
-
使用缓存集群要求运行环境版本为esr-5.3.1(Spark 4.1.1, Scala 2.13)、esr-4.9.1 (Spark 3.5.2, Scala 2.12)或esr-3.8.1(Spark 3.4.4, Scala 2.12)及以上(2026-06-15版本)。
计费说明
缓存集群采用按量付费方式,费用按照配置的缓存配额大小和使用时长计费。关于缓存集群的详细计费信息,请参见数据缓存(按量付费)。
操作步骤
步骤一:创建缓存集群
-
在左侧导航栏,选择EMR Serverless > Spark。
-
选择缓存集群页签。
-
单击创建缓存集群。
-
在创建集群面板中,配置以下参数。
参数
说明
集群名称
自定义缓存集群名称。
缓存配额
通过+/-按钮选择缓存配额大小,以3.5 TB/20 Gbit/s为步长递增。范围为3.5 TB~350 TB,每个步长对应3.5 TB存储容量和20 Gbit/s带宽。
地域
选择集群所在地域,需与工作空间所在地域一致。
-
单击创建缓存集群,完成缓存集群创建。
步骤二:绑定缓存集群到工作空间
将缓存集群绑定到工作空间后,该工作空间中的Spark作业即可使用缓存加速。
-
在Spark页面,选择工作空间页签。
-
单击目标工作空间操作列的绑定缓存集群。
-
选择要绑定的缓存集群。
-
单击确认绑定,完成绑定。
步骤三:添加缓存数据
创建集群后,需要指定需要缓存的数据。您可以通过以下两种方式添加缓存数据。
方式一:添加数据目录
-
在缓存集群页签,单击目标集群操作列的详情。
-
选择缓存管理页签,然后选择数据目录子页签,单击添加缓存表。
-
在添加缓存表对话框,选择已绑定的Spark工作空间,单击下一步。
-
选择DLF或hive_metastore数据目录,单击下一步。
-
选择需要缓存的库表,单击下一步。
-
确认缓存的库表。
方式二:添加文件目录
-
在缓存集群页签,单击目标集群操作列的详情。
-
选择缓存管理页签,然后选择文件目录子页签,单击添加文件目录。
-
在弹出的对话框中,输入需要缓存的OSS或OSS-HDFS目录路径,格式为
oss://bucket-name/path/to/directory。 -
单击确定。
步骤四:提交作业
绑定缓存集群后,提交Spark作业时需要进行以下配置:
-
选择支持缓存集群的运行环境版本:
esr-5.3.1(Spark 4.1.1, Scala 2.13)、esr-4.9.1 (Spark 3.5.2, Scala 2.12)或esr-3.8.1(Spark 3.4.4, Scala 2.12)及以上(见前提条件)。 -
在作业配置中添加以下参数启用缓存:
spark.emr.serverless.cache.enabled=true
升配缓存集群
-
在缓存集群页签,单击目标集群操作列的升配。
-
单击+选择更高的缓存配额。
-
单击确认升配。
升配完成后,缓存集群的状态会由更新中变为运行中。
销毁缓存集群
-
在缓存集群页签,单击目标集群操作列的停止。
-
待缓存集群的状态由停止中变为已停止,单击销毁。
-
在销毁缓存集群对话框,输入集群ID,单击确认销毁。
销毁缓存集群将永久删除所有读时缓存数据,此操作不可逆转。