Utiliser des sélecteurs de cluster avec des workflows

Au lieu d'exécuter un workflow sur un cluster géré, vous pouvez choisir un cluster existant pour votre workflow à l'aide d'un sélecteur. Lorsque le workflow s'achève, le cluster sélectionné n'est pas supprimé.

Les sélecteurs spécifient un ou plusieurs libellés utilisateur Dataproc. Les clusters de la même région que le workflow dont les libellés correspondent à tous les libellés du sélecteur sont autorisés à exécuter des tâches de workflow. Si plusieurs clusters correspondent au sélecteur, Cloud Dataproc choisit le cluster avec la plus grande capacité de mémoire YARN.

Ajouter un sélecteur de cluster à un modèle

Vous pouvez ajouter un sélecteur de cluster à un modèle de workflow à l'aide de l'outil de ligne de commande gcloud ou de l'API Dataproc.

Commande gcloud

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

API REST

Consultez la section WorkflowTemplatePlacement.ClusterSelector. Ce champ est fourni dans le cadre d'un WorkflowTemplate complet envoyé avec une requête WorkflowTemplates.create ou WorkflowTemplates.update.

Console

Vous pouvez afficher les modèles de workflow existants et les workflows instanciés depuis la page Dataproc Workflows dans Cloud Console.

Utiliser des libellés appliqués automatiquement

Vous pouvez faire pointer un sélecteur sur un cluster existant à l'aide d'un de ces libellés appliqués automatiquement :

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

Exemple :

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

Effectuer une sélection à partir d'un pool de clusters

Dataproc peut sélectionner un cluster dans un pool de clusters. Les pools peuvent être définis avec des libellés.

Exemple :

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

Après la création du cluster :

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

Le workflow sera exécuté sur cluster-1 ou cluster-2, mais pas sur cluster-3.