使用缓存集群加速数据访问

更新时间:
复制 MD 格式

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版本)。

计费说明

缓存集群采用按量付费方式,费用按照配置的缓存配额大小和使用时长计费。关于缓存集群的详细计费信息,请参见数据缓存(按量付费)

操作步骤

步骤一:创建缓存集群

  1. 登录E-MapReduce控制台

  2. 在左侧导航栏,选择EMR Serverless > Spark

  3. 选择缓存集群页签。

  4. 单击创建缓存集群

  5. 在创建集群面板中,配置以下参数。

    参数

    说明

    集群名称

    自定义缓存集群名称。

    缓存配额

    通过+/-按钮选择缓存配额大小,以3.5 TB/20 Gbit/s为步长递增。范围为3.5 TB~350 TB,每个步长对应3.5 TB存储容量和20 Gbit/s带宽。

    地域

    选择集群所在地域,需与工作空间所在地域一致。

  6. 单击创建缓存集群,完成缓存集群创建。

步骤二:绑定缓存集群到工作空间

将缓存集群绑定到工作空间后,该工作空间中的Spark作业即可使用缓存加速。

  1. Spark页面,选择工作空间页签。

  2. 单击目标工作空间操作列的绑定缓存集群

  3. 选择要绑定的缓存集群。

  4. 单击确认绑定,完成绑定。

步骤三:添加缓存数据

创建集群后,需要指定需要缓存的数据。您可以通过以下两种方式添加缓存数据。

方式一:添加数据目录

  1. 缓存集群页签,单击目标集群操作列的详情

  2. 选择缓存管理页签,然后选择数据目录子页签,单击添加缓存表

  3. 添加缓存表对话框,选择已绑定的Spark工作空间,单击下一步

  4. 选择DLFhive_metastore数据目录,单击下一步

  5. 选择需要缓存的库表,单击下一步

  6. 确认缓存的库表。

方式二:添加文件目录

  1. 缓存集群页签,单击目标集群操作列的详情

  2. 选择缓存管理页签,然后选择文件目录子页签,单击添加文件目录

  3. 在弹出的对话框中,输入需要缓存的OSSOSS-HDFS目录路径,格式为oss://bucket-name/path/to/directory

  4. 单击确定

步骤四:提交作业

绑定缓存集群后,提交Spark作业时需要进行以下配置:

  1. 选择支持缓存集群的运行环境版本: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)及以上(见前提条件)。

  2. 在作业配置中添加以下参数启用缓存:

    spark.emr.serverless.cache.enabled=true

升配缓存集群

  1. 缓存集群页签,单击目标集群操作列的升配

  2. 单击+选择更高的缓存配额。

  3. 单击确认升配

升配完成后,缓存集群的状态会由更新中变为运行中

销毁缓存集群

  1. 缓存集群页签,单击目标集群操作列的停止

  2. 待缓存集群的状态由停止中变为已停止,单击销毁

  3. 销毁缓存集群对话框,输入集群ID,单击确认销毁

警告

销毁缓存集群将永久删除所有读时缓存数据,此操作不可逆转。