Usa selectores de clúster con flujos de trabajo

Como alternativa a la ejecución de un flujo de trabajo en un clúster administrado, puedes usar un selector de clúster con el fin de elegir un clúster existente para tu flujo de trabajo. Cuando finalice el flujo de trabajo, el clúster seleccionado no se borra.

Los selectores especifican una o más etiquetas de usuario de Dataproc. Los clústeres en la misma región que el flujo de trabajo cuyas etiquetas coinciden con todas las etiquetas del selector son aptos para ejecutar trabajos de flujo de trabajo. Si muchos clústeres coinciden con el selector, Dataproc elegirá el clúster con la mayor cantidad de memoria YARN libre.

Cómo agregar un selector de clúster a una plantilla

Puedes agregar un selector de clúster a una plantilla de flujo de trabajo con Google Cloud CLI o la API de Dataproc.

Comando de gcloud

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

API de REST

Consulta WorkflowTemplatePlacement.ClusterSelector. Este campo se proporciona como parte de una WorkflowTemplate completa, enviada con una solicitud workflowTemplates.create o workflowTemplates.update.

Console

Puedes ver las plantillas de flujo de trabajo existentes y los flujos de trabajo en los que se crearon instancias desde la página Flujos de trabajo de Dataproc en la consola de Google Cloud.

Cómo usar etiquetas aplicadas automáticamente

Puedes apuntar un selector de clúster a un clúster existente si usas una de las siguientes etiquetas de clúster aplicadas automáticamente:

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

Ejemplo:

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

Cómo seleccionar de un grupo de clústeres

Puedes permitir que Dataproc elija un clúster de un grupo de clústeres. Los grupos de clústeres se pueden definir con etiquetas.

Ejemplo:

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

Después de la creación del clúster…

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

Se ejecutará el flujo de trabajo en el cluster-1 o cluster-2, pero no en el cluster-3.