本文档介绍了如何创建 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 ...
替换或添加以下内容:
SESSION_ID:必填。会话的 ID。REGION:必填。用于定位会话的可用 Compute Engine 区域。--version:可选。受支持的 Spark 运行时版本。如果您未指定版本,则系统会使用默认 Spark 运行时版本。--container-image:可选。要用于会话的自定义容器映像。--property:可选。会话的一个或多个以逗号分隔的 Spark 属性。--service-account:可选。要用于会话的服务账号。如果未指定,系统会使用 Compute Engine 默认服务账号。--subnet:可选。会话区域中的子网名称。如果未指定,Managed Service for Apache Spark 会使用会话区域中的default子网。Managed Service for Apache Spark 会在子网中启用专用 Google 访问通道 (PGA)。如需了解网络连接要求,请参阅 Managed Service for Apache Spark 网络配置。
REST
您可以使用 Managed Service for Apache Spark sessions.create API 方法创建 Managed Service for Apache Spark 交互式会话。配置以下请求字段:
name:必需。会话名称。version:可选。会话支持的任何 Spark 运行时版本。如果您未指定版本,则系统会使用默认版本。containerImage:可选。要用于会话的自定义容器映像。properties:可选。会话属性名称到值的映射。如需详细了解支持的属性,请参阅 Spark 属性。serviceAccount:可选。用于运行会话的服务账号。如果未指定,系统会使用 Compute Engine 默认服务账号。subnetworkUri:可选。会话区域中的子网名称。如果未指定,Managed Service for Apache Spark 会使用会话区域中的default子网。Managed Service for Apache Spark 会在子网中启用专用 Google 访问通道 (PGA)。如需了解网络连接要求,请参阅 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 运行时配置文件,请完成以下步骤:
在 Google Cloud 控制台中,前往运行时配置文件页面。
点击创建。
在创建运行时配置文件页面上,配置以下主要设置:
显示名称:必填。输入运行时配置文件的显示名称,或接受预填充的生成名称。显示名称必须至少包含一个字母或数字,并保存为所有会话类型(包括 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 GiBHDD。
执行器配置:为运行工作负载的 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)。
可选:如需自定义高级运行时、算力、自动扩缩、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:前缀。标签:可选。点击添加标签,然后输入键和值对,以将标签附加到运行时配置文件。
查看页面右侧摘要卡片中的配置详细信息,以及估算价格卡片中的估算数据计算单元 (DCU) 使用量。如需详细了解 DCU 费用,请参阅 Managed Service for Apache Spark 价格。
点击创建。
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 运行时配置文件。配置以下请求字段:
name:必需。运行时配置文件的资源名称。version:可选。会话支持的任何 Spark 运行时版本。如果您未指定版本,则系统会使用默认版本。sessionConfig:指定jupyterSession或sparkConnectSession。如果您指定jupyterSession,请同时指定JupyterConfig.displayName和JupyterConfig.kernel字段。如需详细了解 Jupyter 笔记本会话,请参阅在 Managed Service for Apache Spark 上启动 Jupyter 笔记本。containerImage:可选。用于会话的自定义容器映像。properties:可选。Spark 属性名称到值的映射,包括层级、引擎、机器形状、磁盘和自动扩缩属性。如需详细了解支持的属性,请参阅 Spark 属性。serviceAccount:可选。用于运行会话的服务账号。如果未指定,系统会使用 Compute Engine 默认服务账号。subnetworkUri:可选。会话区域中的子网名称。如果未指定,Managed Service for Apache Spark 会使用会话区域中的default子网。Managed Service for Apache Spark 会在子网中启用专用 Google 访问通道 (PGA)。如需了解网络连接要求,请参阅 Managed Service for Apache Spark 网络配置。