使用叢集選取器調度工作流程

除了使用代管叢集之外,還可以使用叢集選取器,選擇現有叢集來執行工作流程,如此在工作流程結束後,系統將不會刪除所選的叢集。

選取器可指定一或多個 Dataproc 使用者標籤。叢集必須位於與工作流程相同的區域,且其標籤與所有選取器標籤相符,才可以執行工作流程工作。如果有多個叢集符合選取器條件,則 Cloud 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.createworkflowTemplates.update 要求所提交的完整 WorkflowTemplate 中,應一併提供此欄位。

控制台

您可以在 Google Cloud 控制台的 Dataproc「Workflows」(工作流程) 頁面中,查看現有的工作流程範本和例項化的工作流程。

使用自動套用的標籤

您可以使用下列一項自動套用的叢集標籤,將叢集選取器指向現有叢集:

  • 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

從叢集的集區中選取

您可以讓 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 中執行。