部分的なクラスタを作成する

特定の期間に特定のリージョンでユーザー指定の VM が使用できない(在庫切れの)場合の影響を軽減するには、Dataproc でクラスタの作成を許可するプライマリ ワーカーの最小数を指定することで、partial cluster の作成をリクエストできます。

標準クラスタ 部分クラスタ
1 つ以上のプライマリ ワーカーを作成して初期化することができない場合、クラスタの作成は失敗します。作成されたワーカーは、ユーザーが削除するまで引き続き実行され、料金が発生します。 指定された最小ワーカー数を作成できる場合は、クラスタが作成されます。失敗した(初期化されていない)ワーカーは削除され、料金は発生しません。指定された最小数のワーカーを作成して初期化できない場合、クラスタは作成されません。作成されたワーカーは、デバッグのために削除されません。
クラスタの作成時間が最適化されます。 すべてのノードがプロビジョニング ステータスを報告する必要があるため、クラスタの作成時間が長くなることがあります。
単一ノードクラスタを作成に利用できます。 単一ノードクラスタを作成に利用できません。

自動スケーリング:

部分的なクラスタ作成で自動スケーリングを使用して、ターゲットとする(完全な)数のプライマリ ワーカーが作成されるようにします。自動スケーリングでは、ワークロードで必要な場合は、失敗したワーカーをバックグラウンドで取得しようとします。

プライマリ ワーカー インスタンスの合計数がターゲット サイズ 10 に達するまで再試行する自動スケーリング ポリシーの例を次に示します。ポリシーの minInstancesmaxInstances が、クラスタの作成時に指定されたプライマリ ワーカーの最小数と合計数と一致します(部分的なクラスタを作成する方法をご覧ください)。 scaleDownFactor を 0 に設定すると、クラスタが 10 から 8 にスケールダウンされるのを防ぎ、ワーカー数を上限の 10 ワーカーに維持できます。

workerConfig:
  minInstances: 8
  maxInstances: 10
basicAlgorithm:
  cooldownPeriod: 2m
  yarnConfig:
    scaleUpFactor: 1
    scaleDownFactor: 0
    gracefulDecommissionTimeout: 1h

部分的なクラスタを作成する方法

Google Cloud CLI または Dataproc API を使用して、Dataproc の部分クラスタを作成できます。

gcloud

コマンドラインで Dataproc の部分クラスタを作成するには、次の gcloud dataproc clusters create コマンドをターミナル ウィンドウまたは Cloud Shell でローカルに実行します。

gcloud dataproc clusters create CLUSTER_NAME \
    --project=PROJECT \
    --region=REGION \
    --num-workers=NUM_WORKERS \
    --min-num-workers=MIN_NUM_WORKERS \
    other args ...
  • CLUSTER_NAME: クラスタ名は小文字で始まり、最大 51 の小文字、数字、ハイフンで構成します。末尾にハイフンは置けません。
  • PROJECT: ジョブクラスタに関連付けられているプロジェクトを指定します。
  • REGION: ジョブクラスタが配置される Compute Engine のリージョンを指定します。
  • NUM_WORKERS: 作成するクラスタ内のプライマリ ワーカーの合計数(利用可能な場合)。
  • MIN_NUM_WORKERS: 指定された合計数(NUM_WORKERS)のワーカーを作成できない場合に作成するプライマリ ワーカーの最小数。この最小数のプライマリ ワーカーを作成できない場合、クラスタの作成は失敗します(作成されるワーカーは、デバッグを可能にするために削除されません)。このフラグを省略すると、プライマリ ワーカーの合計数(NUM_WORKERS)での標準クラスタの作成が試行されます。

REST

Dataproc 部分クラスタを作成するには、clusters.create リクエストの一部として workerConfig.minNumInstances フィールドにプライマリ ワーカーの最小数を指定します。

プロビジョニングされたワーカーの数を表示する

クラスタを作成した後、次の gcloud CLI コマンドを実行して、クラスタにプロビジョニングされているワーカー(セカンダリ ワーカーを含む)の数を一覧表示できます。

gcloud dataproc clusters list \
    --project=PROJECT \
    --region=REGION \
    --filter=clusterName=CLUSTER_NAME