创建交互式会话和运行时配置文件

本文档介绍了如何创建 Managed Service for Apache Spark 交互式会话和运行时配置文件(在 Google Cloud CLI 和 Dataproc API 中称为会话模板)。运行时配置文件是一组可重复使用的无服务器 Spark 运行时设置,例如计算层级和执行器配置,可用于创建交互式笔记本和会话。

创建交互式会话

您可以使用 Google Cloud CLI 或 Managed Service for Apache Spark API 创建 Managed Service for Apache Spark 交互式会话。

gcloud

您可以使用 gcloud beta dataproc sessions create spark SESSION_ID 命令创建 Managed Service for Apache Spark 交互式会话:

gcloud beta dataproc sessions create spark SESSION_ID \
    --location=REGION \
    optional flags ...

替换或添加以下内容:

REST

您可以使用 Managed Service for Apache Spark sessions.create API 方法创建 Managed Service for Apache Spark 交互式会话。配置以下请求字段:

创建运行时配置文件

Managed Service for Apache Spark 运行时配置文件(有时称为会话模板)定义了可重复使用的配置设置,用于创建 Managed Service for Apache Spark 交互式会话。您可以使用 Google Cloud 控制台、gcloud CLI 或 Managed Service for Apache Spark API 创建运行时配置文件。在 gcloud CLI 和 Dataproc API 中,运行时配置文件称为 session templates。

控制台

如需使用Google Cloud 控制台创建 Managed Service for Apache Spark 运行时配置文件,请完成以下步骤:

  1. 在 Google Cloud 控制台中,前往运行时配置文件页面。

    前往“运行时配置文件”

  2. 点击创建。

  3. 在创建运行时配置文件页面上,配置以下主要设置:

    • 显示名称:必填。输入运行时配置文件的显示名称,或接受预填充的生成名称。显示名称必须至少包含一个字母或数字,并保存为所有会话类型(包括 Spark Connect)的顶级显示名称。运行时配置文件名称是资源 ID,通过将字母转换为小写并将无效字符转换为连字符,从显示名称自动派生,在字段下方显示为提示。如需单独自定义资源 ID(不与显示名称一起自定义),请展开其他配置,然后修改运行时配置。

    • 区域:必需。为使用此运行时配置文件的会话选择可用的 Compute Engine 区域。默认区域为 us-east4(之前为 us-central1),并且该列表会显示区域说明。

    • 说明:可选。输入说明,以帮助识别运行时配置文件。

    • 层级:选择用于工作负载执行的 Managed Service for Apache Spark 层级:

      • Premium:默认。利用加速引擎优化复杂或延迟敏感型查询,并支持高内存和 GPU 加速的执行器形状。选择高级后,系统会显示启用 Lightning Engine 以提升性能复选框,并默认选中该复选框,以便使用 Lightning Engine 加速 Spark 作业,这会设置 spark.dataproc.engine=lightningEngine。

      • 标准:提供用于日常数据处理的标准 Spark 执行环境。交互式会话始终在高级层级上运行;选择标准只会影响批量执行。选择标准会关闭 Lightning Engine,将机器配置限制为标准 CPU 配置(standard-4、standard-8 或 standard-16),并且需要 HDD (standard) 磁盘。如果您从高级版切换到标准版,高内存或 GPU 配置会重置为 standard-4,SSD 磁盘会重置为 200 GiB HDD。

    • 执行器配置:为运行工作负载的 Spark 执行器和驱动程序选择计算大小调整模式和机器形状:

      • 常规:默认。提供仅限 CPU 的机器形状,适用于常规提取、转换和加载 (ETL) 工作负载。在执行器类型列表中,选择高内存配置,例如 highmem-4(默认,具有 4 个 vCPU 和 32 GB 内存)、highmem-8(具有 8 个 vCPU 和 64 GB 内存)或 highmem-16(具有 16 个 vCPU 和 128 GB 内存),或者选择标准配置,例如 standard-4(具有 4 个 vCPU 和 16 GB 内存)、standard-8(具有 8 个 vCPU 和 32 GB 内存)或 standard-16(具有 16 个 vCPU 和 64 GB 内存)。高内存形状仅在高级层级中可用。

      • 加速:提供连接了 GPU 的机器形状,适用于数据科学和 AI 或机器学习训练和推理工作负载。选择加速形状会自动将层级切换为高级,并将磁盘层级切换为 SSD(高级),默认大小为 375 GiB。在执行器类型列表中,选择具有 4、8、12、16、24、48 或 96 个 vCPU 的 L4 形状,或选择 A100 形状,例如 A100 40GB (12 vCPU) 或 A100 80GB (12 vCPU)。

  4. 可选:如需自定义高级运行时、算力、自动扩缩、metastore、网络、安全、生命周期或属性设置,请点击其他配置以展开面板。在要自定义的任何类别旁边,点击修改,在窗格中配置设置,然后点击保存:

    • 运行时配置:配置运行时标识符、Spark 版本、容器映像、暂存存储桶和 Python Package Repository:

      • 运行时配置文件名称:必填。接受根据显示名称生成的资源 ID,或输入自定义 ID。ID 必须包含 4 到 63 个字符,只能包含小写字母、数字和连字符,以小写字母或数字开头和结尾,并且在创建运行时配置文件后无法更改。

      • Spark 运行时版本:必需。选择受支持的 Managed Service for Apache Spark 运行时版本。

      • 自定义 Spark 映像:可选。输入包含自定义 Java 或 Python 依赖项的自定义容器映像的 Artifact Registry 或 Container Registry URI。

      • 暂存存储桶:可选。点击浏览,选择或创建 Cloud Storage 暂存存储桶,用于存储工作负载依赖项、作业驱动程序输出和配置文件。如果留空,Managed Service for Apache Spark 会自动管理暂存存储桶(在摘要中用 Auto 表示)。

      • Python Package Repository:可选。输入自定义仓库的 URI(例如 https://pypi.org/simple),以安装 Python 软件包。如果留空,则从 Google 管理的 PyPI 拉取缓存(默认摘要)安装软件包。

    • 执行器和驱动程序配置:自定义计算层级、磁盘层级、磁盘大小和单独的驱动程序配置:

      • 层级:选择高级(其中包含可选的启用 Lightning Engine 以提升性能复选框)或标准。

      • 执行器类型:选择通用 High memory 或 Standard 机器类型,或加速 L4 或 A100 机器类型。

      • 磁盘层级:选择 HDD (standard) 或 SSD (premium)。HDD (standard) 是 CPU 形状的默认值,在标准层级中是必需的。SSD (premium) 适用于高级层级,可用于重排操作频繁或溢出密集型工作负载,并且是加速 GPU 机器类型的必需项。

      • 磁盘大小:选择磁盘大小(以 GiB 为单位)。HDD (standard) 支持 200 GiB 到 1500 GiB(以 100 GiB 为增量),默认值为 200 GiB。SSD (premium) 支持 375 GiB、750 GiB 或 1500 GiB,默认值为 375 GiB。

      • 为驱动程序使用不同的配置:可选。默认情况下,驱动程序使用与执行器相同的机器形状和磁盘配置。选中此复选框可单独自定义驱动程序机器类型、驱动程序磁盘层级和驱动程序磁盘大小。

    • 自动扩缩:配置动态资源分配,以根据工作负载需求扩缩执行器:

      • 已启用:默认处于选中状态,用于设置 spark.dynamicAllocation.enabled。取消选中此复选框可停用自动扩缩。

      • 初始执行器数量:输入初始执行器数量,用于设置 spark.dynamicAllocation.initialExecutors。默认值为 5。 对于运行时版本 2.3 及更早版本,有效值范围为 2 到 2000;对于运行时版本 3.0 及更高版本,有效值范围为 0 到 2000。

      • 执行器数量下限:输入执行器数量下限,用于设置 spark.dynamicAllocation.minExecutors。对于运行时版本 2.3 及更早版本,默认值为 2;对于运行时版本 3.0 及更高版本,默认值为 0,上限为 2000。

      • 执行器数量上限:输入执行器数量上限,用于设置 spark.dynamicAllocation.maxExecutors。默认值为 1000,允许的最大值为 2000。

    • Metastore 配置:选择用于管理数据集元数据的 Metastore:

      • Lakehouse 运行时目录:默认。使用当前项目中的无服务器 Lakehouse 运行时目录,默认启用 Iceberg REST 端点。您可以指定项目 ID,然后选择现有目录 ID 或定义新目录。您还可以选中 Hive 端点复选框,以指定 Hive 端点项目 ID、目录 ID 和目录名称。

      • Dataproc Metastore:附加一个代管式 Dataproc Metastore Hive Metastore (HMS) 实例。在所选项目中选择项目,然后在 Metastore 服务列表中选择服务实例。

      • 无:为使用此运行时配置文件的会话停用 Metastore 集成。

    • 网络和安全:配置 VPC 网络、执行凭据和加密密钥:

      • 连接集群:在网络配置下, Google Cloud 控制台会自动在所选区域中选择符合条件的网络或子网。如果所选区域没有可用的默认网络,其他配置会自动打开并显示警告,指出默认网络不可用。在这种情况下,创建按钮会保持停用状态,直到您点击配置网络并选择可用的子网。您可以选择此项目中的网络,以在当前项目中选择主要网络和子网;也可以选择从宿主项目共享的网络,以选择共享 VPC 子网。所选子网必须启用专用 Google 访问通道 (PGA)。如需了解网络连接要求,请参阅开放子网连接。您还可以输入可选的网络标记,以将防火墙规则和路由应用于工作负载虚拟机。

      • 执行笔记本所用的账号:选择用户账号(默认选项),以使用最终用户凭证执行笔记本;或选择服务账号,以使用自定义服务账号运行会话。选择服务账号后,必须在服务账号字段中指定服务账号。

      • 加密:选择 Google-owned and Google-managed encryption key(默认值),或选择 Cloud KMS 密钥,以使用客户管理的加密密钥 (CMEK) 加密工作负载数据。

    • 会话生命周期:配置自动会话终止限制:

      • 空闲时间上限:可选。输入空闲时间上限数量,并选择空闲时间上限单位(seconds、minutes、hours 或 days,从 10 分钟到 330 小时),以指定笔记本会话在自动终止之前可以保持空闲状态的时长。

      • 会话时长上限:可选。输入会话时长上限(数量),然后选择会话时长上限(单位)(seconds、minutes、hours 或 days),范围为 10 分钟到 330 小时,以指定会话的生命周期上限。

    • 其他自定义设置:添加自定义 Spark 属性和资源标签:

      • Spark 属性:可选。点击添加属性,然后输入自定义 Spark 属性的键和值对。由表单中专用字段控制的属性(例如计算层级、执行器和驱动程序大小、Lightning Engine、spark.dynamicAllocation.* 和 Lakehouse 目录属性)由这些字段管理,并从自由格式列表中隐藏。在 Google Cloud 控制台中,请勿添加 spark: 前缀。

      • 标签:可选。点击添加标签,然后输入键和值对,以将标签附加到运行时配置文件。

  5. 查看页面右侧摘要卡片中的配置详细信息,以及估算价格卡片中的估算数据计算单元 (DCU) 使用量。如需详细了解 DCU 费用,请参阅 Managed Service for Apache Spark 价格。

  6. 点击创建。

gcloud

在 gcloud CLI 中,运行时配置文件作为会话模板进行管理。您无法使用 gcloud CLI 中的 create 命令直接创建 Managed Service for Apache Spark 运行时配置文件,但可以使用 gcloud beta dataproc session-templates import 命令通过 YAML 配置文件创建或更新运行时配置文件。您还可以使用 gcloud beta dataproc session-templates export 命令导出。

REST

在 Managed Service for Apache Spark API 中,运行时配置文件由 SessionTemplate 资源表示。您可以使用 Managed Service for Apache Spark sessionTemplates.create API 方法创建 Managed Service for Apache Spark 运行时配置文件。配置以下请求字段: