除了使用代管叢集之外,還可以使用叢集選取器,選擇現有叢集來執行工作流程,如此在工作流程結束後,系統將不會刪除所選的叢集。
選取器可指定一或多個 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.create 或 workflowTemplates.update 要求所提交的完整 WorkflowTemplate 中,應一併提供此欄位。控制台
您可以在 Google Cloud 控制台的 Dataproc「Workflows」(工作流程) 頁面中,查看現有的工作流程範本和例項化的工作流程。
使用自動套用的標籤
您可以使用下列一項自動套用的叢集標籤,將叢集選取器指向現有叢集:
goog-dataproc-cluster-namegoog-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 中執行。