将集群选择器与工作流搭配使用

作为在受管集群上运行工作流的替代方法,您可以使用集群选择器为工作流选择现有集群。在工作流结束时,系统不会删除选定的集群。

选择器指定一个或多个 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.createworkflowTemplates.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

从集群池中选择

您可以让 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 上运行。