ワークフローでクラスタ セレクタを使用する

マネージド クラスタでワークフローを実行する代わりに、クラスタ セレクタを使用して、ワークフローの既存のクラスタを選択できます。ワークフローの終了時に、選択したクラスタは削除されません。

セレクタは、1 つ以上の Dataproc ユーザーラベルを指定します。ワークフローのラベルが、すべてのセレクタ ラベルと一致しているワークフローと同じリージョンにあるクラスタは、ワークフロー ジョブを実行できます。複数のクラスタがセレクタと一致する場合、Dataproc は YARN メモリの空き容量が最も多いクラスタを選択します。

テンプレートへのクラスタ セレクタの追加

Google Cloud CLI または Dataproc API を使用して、クラスタ セレクタをワークフロー テンプレートに追加できます。

gcloud コマンド

gcloud dataproc workflow-templates set-cluster-selector template-id \
    --region=region \
    --cluster-labels=name=value[[,name=value]...]

REST API

WorkflowTemplatePlacement.ClusterSelector をご覧ください。このフィールドは、workflowTemplates.create または workflowTemplates.update リクエストによって送信された、完成済みの WorkflowTemplate の一部として提供されます。

コンソール

Google Cloud コンソールの Dataproc [ワークフロー] ページから、既存のワークフロー テンプレートとインスタンス化されたワークフローを表示できます。

自動的に適用されたラベルの使用

次のいずれかの自動的に適用されるクラスタラベルを使用して、クラスタ セレクタで既存のクラスタを参照できます。

  • goog-dataproc-cluster-name
  • goog-dataproc-cluster-uuid

例:

gcloud dataproc workflow-templates set-cluster-selector template-id \
    --region=region \
    --cluster-labels=goog-dataproc-cluster-name=my-cluster

クラスタプールからの選択

Cloud Dataproc で、クラスタのプールからクラスタが選択されるようにできます。 クラスタプールはラベルで定義できます。

例:

gcloud dataproc clusters create cluster-1 --labels cluster-pool=pool-1 \
    --region=region
gcloud dataproc clusters create cluster-2 --labels cluster-pool=pool-1 \
    --region=region
gcloud dataproc clusters create cluster-3 --labels cluster-pool=pool-2 \
    --region=region

クラスタの作成後、

gcloud dataproc workflow-templates create my-template \
    --region=region
gcloud dataproc workflow-templates set-cluster-selector my-template \
    --region=region \
    --cluster-labels=cluster-pool=pool-1

ワークフローは、cluster-1 または cluster-2 では実行されますが、cluster-3 では実行されません。