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 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-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

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.