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 | 7,500 | GetBatch、ListBatches、GetSession、ListSessions |
| ActiveOperationsPerProjectPerRegion | 5,000 | リージョン内のプロジェクトにある、あらゆるタイプの同時実行アクティブ オペレーションを合計した数の上限。 |
Managed Service for Apache Spark サーバーレス DCU の割り当て
Managed Service for Apache Spark サーバーレス ランタイム バージョン 4.0 以降では、Compute Engine の割り当てではなく、プロジェクトのデータ コンピューティング ユニット(DCU)の割り当て(dataproc.googleapis.com/data_compute_units)によって、Managed Service for Apache Spark サーバーレス バッチ ワークロードとインタラクティブ セッションのコンピューティング リソースの使用量が管理および制限されます(基盤となる Compute Engine の割り当ての使用量は、専用の Managed Service for Apache Spark プロデューサー プロジェクトにリダイレクトされます)。
DCU 割り当ては、Compute Engine の Google Cloud コンソールの [割り当て] ページで確認して調整できます。割り当て調整を有効にすると、使用量が上限に近づいたときに DCU 割り当てを増やすことができます。
DCU の消費量を計算する
DCU の使用量は、Managed Service for Apache Spark サーバーレスの DCU 料金と同じ式を使用して、VM シェイプからノードごとに計算されます。
- vCPU あたり 0.6 DCU。
- メモリ 1 GB あたり 0.1 DCU(vCPU あたり最大 8 GB)。
- vCPU あたり 8 GB を超えるメモリ(拡張メモリ)1 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 割り当てを引き続き消費します。 - サポートされていない割り当て: GPU、予約、グローバル Compute Engine の割り当ては、DCU 割り当てモデルではサポートされていません。
その他の 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 は、複数のマシン ファミリーとディスクタイプにわたるフォールバックをサポートしています。たとえば、プレミアム ティアでは、バッチ ワークロードは、永続 SSD を使用する
N2、ローカル SSD を使用するN2D、永続ディスクを使用するN2D、Hyperdisk Balanced を使用するN4、Hyperdisk Balanced を使用するN4Dにフォールバックできます。フォールバック選択リソースを消費するのに十分な割り当てがない場合、バッチ ワークロードは失敗します。
次の表に、Managed Service for Apache Spark バッチ ワークロードに適用される Compute Engine リソースの割り当てを示します。
| コンピューティング階層 | 割り当て |
|---|---|
| スタンダード | CPUS |
| プレミアム |
|
| ディスク階層 | 割り当て |
| スタンダード | DISKS_TOTAL_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 バッチとそれぞれ 4 つのコア(spark.executor.cores=4)を持つ 2 つのエグゼキュータを実行するには、12 個の仮想 CPU(4 * 3)を使用します。このバッチの使用量は、リージョン割り当て上限である 24 個の仮想 CPU に対してカウントされます。
デフォルトのバッチ リソース
デフォルト設定でバッチを作成する場合、次の Compute Engine リソースが使用されます。
| 項目 | 使用されるリソース |
|---|---|
| 仮想 CPU | 12 |
| 仮想マシン(VM)インスタンス | 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 クエリを使用すると、割り当てに達した Managed Service for Apache Spark ワークロードや、IP アドレスの枯渇によりスケーリングできなかったワークロードを特定できます。
割り当てクエリ:
jsonPayload.@type="type.googleapis.com/google.cloud.dataproc.logging.AutoscalerLog"