Apache Spark 用サーバーレスでは、API 割り当てにプロジェクトとリージョンのレベルで上限が設定されています。割り当ては 60 秒(1 分)ごとにリセットされます。
次の表に、プロジェクトあたりの固有およびデフォルトの Apache Spark 用サーバーレス API 割り当てタイプ、割り当て上限、適用先のメソッドを示します。
| 割り当てのタイプ | 上限 | API のメソッドまたは説明 |
|---|---|---|
| ClusterOperationRequestsPerMinutePerProjectPerRegion | 200 | CancelOperation(バッチ オペレーションの割り当てのキャンセルは、クラスタ オペレーションのキャンセルと共有セルされます)。 |
| BatchOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateBatch、DeleteBatch |
| SessionOperationRequestsPerMinutePerProjectPerRegion | 200 | CreateSession、DeleteSession、TerminateSession |
| DefaultRequestsPerMinutePerProjectPerRegion | 7500 | GetBatch、ListBatches、GetSession、ListSessions |
| ActiveOperationsPerProjectPerRegion | 5000 | リージョン内のプロジェクトにある、あらゆるタイプの同時実行アクティブ オペレーションを合計した数の上限。 |
その他の Google Cloud の割り当て
Apache Spark 用サーバーレス バッチは、他の Google Cloud プロダクトを利用します。これらのプロダクトにはプロジェクト レベルの割り当てがあり、これには Apache Spark 用サーバーレスの使用に適用される割り当てが含まれます。Serverless for Apache Spark を使用するには、Compute Engine や Cloud Storage などの一部のサービスが必須です。他のサービス(BigQuery や Bigtable など)は、必要に応じて Apache Spark 用 Serverless で使用できます。
必須サービス
割り当て上限が適用される次のサービスは、Apache Spark 用サーバーレス バッチの作成に必要です。
Compute Engine
Apache Spark 用サーバーレス バッチは、次の Compute Engine リソース割り当てを使用します。
| コンピューティング階層 | 割り当て |
|---|---|
| スタンダード | CPUS |
| プレミアム | N2_CPUS |
| ディスク階層 | 割り当て |
| スタンダード | DISKS_TOTAL_GB |
| プレミアム | N2 VM ファミリーを伴う LOCAL_SSD_TOTAL_GB_PER_VM_FAMILY |
| GPU アクセラレータ | 割り当て |
| L4 | NVIDIA_L4_GPUS |
| A100 40GB | NVIDIA_A100_GPUS |
| A100 80GB | NVIDIA_A100_80GB_GPUS |
Compute Engine の割り当ては、リージョン上限とグローバル上限に分けられます。これらの上限は、作成したバッチに適用されます。たとえば、4 つのドライバコア(spark.driver.cores=4)を持つ Spark バッチとそれぞれ 4 つのコア(spark.executor.cores=4)を持つ 2 つのエグゼキュータを実行するには、12 個の仮想 CPU(4 * 3)を使用します。このバッチの使用量は、リージョン割り当て上限である 24 個の仮想 CPU に対してカウントされます。
デフォルトのバッチ リソース
デフォルト設定でバッチを作成する場合、次の Compute Engine リソースが使用されます。
| 項目 | 使用されるリソース |
|---|---|
| 仮想 CPU | 12 |
| 仮想マシン(VM)インスタンス | 3 |
| 永続ディスク | 1200 GiB |
Cloud Logging
Apache Spark 向けサーバーレスは、バッチ出力とログを Cloud Logging に保存します。Cloud Logging の割り当ては、Apache Spark 用 Serverless バッチに適用されます。
オプション サービス
Apache Spark 用サーバーレス バッチでは、割り当て上限がある次のサービスをオプションで使用できます。
BigQuery
BigQuery に対してデータを読み書きする場合、BigQuery の割り当てが適用されます。
Bigtable
Bigtable に対してデータを読み書きする場合、Bigtable の割り当てが適用されます。
割り当てまたは IP アドレスの制限があるワークロードを特定する
次の Cloud Logging クエリを使用すると、割り当てに達したか、IP アドレスの枯渇によりスケーリングできなかった Apache Spark ワークロード用のサーバーレスを特定できます。
割り当てクエリ:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.recommendation.outputs.constraintsReached="SCALING_CAPPED_DUE_TO_LACK_OF_QUOTA"
IP アドレスの枯渇に関するクエリ:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"
jsonPayload.status.details =~".*Insufficient free IP addresses.*"