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ústeres a una plantilla de flujo de trabajo con el 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.