Managed Service for Apache Spark 具有 API 配额限制,这些限制在项目和区域层级强制执行。配额每 60 秒(1 分钟)重置一次。

下表列出了每个项目具体的默认 Managed Service for Apache Spark API 配额类型、配额限制,以及限制所适用的方法。

配额类型 限制 API 方法或说明
ClusterOperationRequestsPerMinutePerProjectPerRegion 200 CancelOperation(取消批处理操作配额与取消集群操作配额共享)。
BatchOperationRequestsPerMinutePerProjectPerRegion 200 CreateBatch,DeleteBatch
SessionOperationRequestsPerMinutePerProjectPerRegion 200 CreateSession、DeleteSession、TerminateSession
DefaultRequestsPerMinutePerProjectPerRegion 7500 GetBatch、ListBatches、GetSession、ListSessions
ActiveOperationsPerProjectPerRegion 5,000 一个区域内一个项目中所有类型并发活跃操作的总数限制。

Managed Service for Apache Spark 无服务器 DCU 配额

从 Managed Service for Apache Spark 无服务器运行时版本 4.0 开始,项目的 Data Compute Unit (DCU) 配额 (dataproc.googleapis.com/data_compute_units)(而非 Compute Engine 配额)会管理和限制 Managed Service for Apache Spark 无服务器批处理工作负载和交互式会话计算资源用量(底层 Compute Engine 配额用量会重定向到专用的 Managed Service for Apache Spark 生产者项目)。

您可以在 Dataproc API 的 Google Cloud 控制台配额页面上查看和调整 DCU 配额。您可以启用配额调整工具,以便在用量接近上限时提高 DCU 配额。

计算 DCU 消耗量

DCU 用量是根据虚拟机形状按节点计算的,计算公式与 Managed Service for Apache Spark 无服务器 DCU 定价相同:

  • 每个 vCPU 0.6 DCU。
  • 每 GB 内存 0.1 DCU,每个 vCPU 最多 8 GB。
  • 如果每个 vCPU 的内存量超出 8 GB,则多出的部分(扩展内存)按照每 GB 0.2 DCU 收费。
  • 高级层级节点的 DCU 是标准层级上相同形状节点的 1.5 倍。

节点池的 DCU 会向上舍入到最接近的整数:

DCUs = ceiling(nodes × DCUs per node)

示例:具有 4 个 vCPU 和 16 GB 内存的标准层级节点使用 4 × 0.6 + 16 × 0.1 = 4 个 DCU。具有 1 个驱动程序和 10 个此形状执行器的批处理使用 44 个 DCU。在高级层级上,同一批次使用 66 个 DCU。

限制

DCU 配额存在以下限制:

  • 运行时版本:DCU 配额适用于 Managed Service for Apache Spark 无服务器运行时版本 4.0 及更高版本。使用 4.0 之前的运行时版本的工作负载不会消耗 DCU 配额,而是会继续消耗项目的 Compute Engine 配额。
  • 不支持的配额:DCU 配额模型不支持 GPU、预留和全局 Compute Engine 配额。

其他 Google Cloud 配额

Managed Service for Apache Spark 批处理作业使用其他 Google Cloud 产品。 这些产品具有项目级配额,其中包括适用于 Managed Service for Apache Spark 用量的配额。使用 Managed Service for Apache Spark 时必需用到一些服务,例如 Compute Engine 和 Cloud Storage。此外,可以选择将其他服务(例如 BigQuery 和 Bigtable)与 Managed Service for Apache Spark 结合使用。

必需服务

创建 Managed Service for Apache Spark 批处理作业需要以下强制执行配额限制的服务。

Compute Engine

Managed Service for Apache Spark 批量工作负载可以选择各种 Compute Engine 资源:

  • 为了缓解 CPU 和磁盘的获取问题,Managed Service for Apache Spark 支持跨多个机器系列和磁盘类型进行回退。例如,在高级层级中,批处理工作负载可以回退到具有永久性固态硬盘的 N2、具有本地固态硬盘的 N2D、具有永久性磁盘的 N2D、具有 Hyperdisk Balanced 的 N4 或具有 Hyperdisk Balanced 的 N4D。

  • 如果批量工作负载没有足够的配额来使用后备选择资源,则会失败。

下表列出了适用于 Managed Service for Apache Spark 批处理工作负载的 Compute Engine 资源配额。

计算层级 配额
标准 CPUS
高级
  • N2_CPUS
  • N2D_CPUS
  • CPUS_PER_VM_FAMILY(采用 N4 虚拟机系列)
  • CPUS_PER_VM_FAMILY(N4D 虚拟机系列)
磁盘层级 配额
标准 DISKS_TOTAL_GB
高级
  • DISKS_TOTAL_GB
  • LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY(采用 N2 和 N2D 虚拟机系列)
  • SSD-TOTAL-GB 或 Persistent Disk SSD (GB)
  • HDB-TOTAL-GB 或 Hyperdisk Balanced Capacity (GB)
GPU 加速器 配额
L4 NVIDIA_L4_GPUS
A100 40GB NVIDIA_A100_GPUS
A100 80GB NVIDIA_A100_80GB_GPUS

Compute Engine 配额可拆分为区域限制和全局限制。这些限制适用于您创建的批处理。例如,要运行具有 4 个驱动程序核心 (spark.driver.cores=4) 和两个执行程序 (spark.executor.cores=4)(每个具有 4 个核心)的 Spark 批处理,您需要使用 12 个虚拟 CPU (4 * 3)。此批次用量将计入区域配额限制(24 个虚拟 CPU)。

默认批处理资源

使用默认设置创建批处理时,系统将使用以下 Compute Engine 资源:

资源项 使用的资源数量
虚拟 CPU 12
虚拟机实例 3
永久性磁盘 1,200 GiB

日志记录

Managed Service for Apache Spark 将批处理输出和日志保存在 Cloud Logging 中。Logging 配额适用于 Managed Service for Apache Spark 批处理。

可选服务

以下服务具有配额限制,您可以选择将这些服务与 Managed Service for Apache Spark 批处理结合使用。

BigQuery

对 BigQuery 执行数据读写操作时,BigQuery 配额适用。

Bigtable

对 Bigtable 执行数据读写操作时,适用 Bigtable 配额。

识别存在配额或 IP 地址限制的工作负载

您可以使用以下 Logging 查询来识别已达到配额或因 IP 地址耗尽而无法扩缩的 Managed Service for Apache Spark 工作负载。

配额查询:

jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"