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 Managed Service pour Apache Spark. 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, Managed Service pour Apache Spark choisit le cluster disposant de la plus grande quantité de mémoire YARN disponible.
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 sur la page Workflows de Managed Service pour Apache Spark dans la console Google Cloud .
Utiliser les étiquettes appliquées 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-namegoog-dataproc-cluster-uuid
Exemple :
gcloud dataproc workflow-templates set-cluster-selector template-id \ --region=region \ --cluster-labels=goog-dataproc-cluster-name=my-cluster
Sélectionner dans un pool de clusters
Vous pouvez laisser Managed Service pour Apache Spark choisir 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.