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 la Google Cloud CLI 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 la console Google Cloud.
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.