VM préemptives

En plus des machines virtuelles (VM) Compute Engine standards, les clusters Dataproc peuvent utiliser des instances de VM préemptives, également appelées VM préemptives. Les nœuds de calcul préemptifs sont récupérés, supprimés du cluster, s'ils sont requis par Google Cloud pour d'autres tâches. Bien que la suppression potentielle de nœuds de calcul préemptifs puisse affecter la stabilité des tâches, vous pouvez décider d'utiliser des instances préemptives afin de réduire les coûts de calcul par heure pour le traitement des données non critiques ou afin de créer de très grands clusters pour un coût total plus faible. Pour en savoir plus, consultez la documentation de tarification Dataproc.

Fonctionnement des nœuds de calcul préemptifs avec Dataproc

Tous les nœuds de calcul secondaires ajoutés à un cluster utilisent le type de machine des nœuds de calcul principaux du cluster. Par exemple, si vous créez un cluster avec des nœuds de calcul principaux utilisant des types de machines n1-standard-4, tous les nœuds de calcul secondaires ajoutés utiliseront également des machines n1-standard-4.

Les nœuds de calcul préemptifs sont récupérés si Google Cloud en a besoin pour d'autres tâches. Ils sont rajoutés au cluster si et lorsque la capacité le permet. Par exemple, si deux machines préemptives sont récupérées et supprimées d'un cluster, ces instances sont à nouveau ajoutées au cluster si et quand la capacité est disponible pour cette opération.

Les règles suivantes s'appliquent à tous les nœuds de calcul secondaires, préemptifs et non préemptifs, dans un cluster Dataproc :

  • Traitement uniquement : les nœuds de calcul secondaires ne stockent pas de données. Ils fonctionnent uniquement comme nœuds de traitement.

  • Aucun cluster de nœud de calcul secondaire uniquement : votre cluster doit comporter des nœuds de calcul principaux. Si vous créez un cluster et que vous ne spécifiez pas le nombre de nœuds de calcul principaux, Dataproc ajoute deux nœuds de calcul principaux au cluster.

  • Taille de disque persistant : par défaut, les nœuds de calcul secondaires sont créés avec une taille de disque de démarrage égale à celle du nœud de calcul primaire ou à 100 Go, selon la valeur qui est la plus faible. Cet espace disque est utilisé pour la mise en cache locale des données et n'est pas disponible via HDFS. Vous pouvez remplacer la taille de disque par défaut à l'aide de la commande gcloud dataproc clusters create --secondary-worker-boot-disk-size lors de la création du cluster. Vous pouvez spécifier cette option même si le cluster ne dispose pas de nœuds de calcul secondaires lors de sa création.

Utiliser des instances préemptives dans un cluster

Lorsque vous créez un cluster à l'aide d'une requête à l'API Dataproc, de l'outil de ligne de commande gcloud du SDK Cloud, ou de Google Cloud Console, vous pouvez spécifier le nombre et le type de nœuds de calcul secondaires (préemptifs et/ou non préemptifs).

Notes :

  • Un cluster peut contenir des nœuds de calcul secondaires préemptifs ou des nœuds de calcul secondaires non préemptifs, mais pas les deux.
  • Vous pouvez mettre à jour votre cluster après sa création pour modifier le nombre, mais pas le type, de nœuds de calcul secondaires de votre cluster.
  • Les mises à jour de libellés se propagent à tous les nœuds de calcul secondaires préemptifs dans les 24 heures. Actuellement, les mises à jour de libellés ne se propagent pas aux nœuds de calcul secondaires existants non préemptifs. Elles sont également appliquées aux nœuds de calcul ajoutés à un cluster après la mise à jour du libellé. Par exemple, si vous effectuez un scaling à la hausse du cluster, tous les nouveaux nœuds de calcul principal et secondaire se verront affecter de nouveaux libellés.

Commande gcloud

Exécutez la commande gcloud dataproc clusters create pour ajouter des instances préemptives à un cluster lors de la création de celui-ci. Une fois le cluster créé, vous pouvez y ajouter ou supprimer des instances préemptives à l'aide de la commande gcloud dataproc clusters update.

Créer un cluster avec des nœuds de calcul préemptifs

Pour créer un cluster avec des nœuds de calcul préemptifs, exécutez la commande gcloud dataproc clusters create avec l'argument --num-secondary-workers. Notez que, les nœuds de calcul secondaires sont préemptifs par défaut, mais vous pouvez ajouter des nœuds de calcul secondaires non préemptifs lorsque vous créez un cluster en définissant --secondary-worker-type=non-preemptible (voir exemple 2).

Exemple 1

La commande suivante crée un cluster nommé "my-test-cluster" avec deux nœuds de calcul préemptifs.

gcloud dataproc clusters create my-test-cluster \
    --num-secondary-workers=2 \
    --region=us-central1
...
Waiting on operation [operations/projects/project-id/operations/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

Exemple 2

La commande suivante utilise l'option secondary-worker-type pour créer le cluster "my-test-cluster" avec deux nœuds de calcul secondaires non préemptifs.

gcloud dataproc clusters create my-test-cluster \
    --num-secondary-workers=2 \
    --secondary-worker-type=non-preemptible \
    --region=us-central1

Mettre à jour un cluster avec des nœuds de calcul secondaires

Pour mettre à jour un cluster afin d'ajouter ou de supprimer des nœuds de calcul préemptifs, exécutez la commande gcloud dataproc clusters update avec l'argument --num-secondary-workers.

Exemple

La commande suivante met à jour un cluster nommé "my-test-cluster" pour utiliser deux nœuds de calcul secondaires.

gcloud dataproc clusters update my-test-cluster \
    --num-secondary-workers=2 \
    --region=us-central1
...
Waiting on operation [operations/projects/project-id/operations/...].
Waiting for cluster update operation...done.
Updated [https://dataproc.googleapis.com/...].
clusterName: my-test-cluster
  ...
secondaryWorkerConfiguration:
    - dataproc-1-sw-2skd
    - dataproc-1-sw-l20p
    isPreemptible: true
...

Supprimer tous les nœuds de calcul secondaires d'un cluster

Pour supprimer tous les nœuds de calcul secondaires d'un cluster, exécutez la commande gcloud dataproc clusters update avec l'argument --num-secondary-workers défini sur 0.

Exemple

La commande suivante supprime tous les nœuds de calcul secondaires d'un cluster.

gcloud dataproc clusters update my-test-cluster \
    --num-secondary-workers=0 \
    --region=us-central1

API REST

Créer un cluster avec des nœuds de calcul préemptifs

Utilisez l'APIclusters.create Dataproc pour ajouter des nœuds de calcul préemptifs à un cluster lors de la création du cluster. Notez que par défaut, les nœuds de calcul secondaires sont préemptifs, mais vous pouvez ajouter des nœuds de calcul secondaires non préemptifs à vos clusters, comme indiqué dans l'exemple 2.

Exemple 1

La requête POST suivante crée un cluster avec deux nœuds de calcul préemptifs.


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster-name",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  }
}

Exemple 2

La requête POST suivante crée un cluster avec deux nœuds de calcul secondaires non préemptifs.


POST https://dataproc.googleapis.com/v1/projects/project-id/regions/region/clusters

{
  "clusterName": "cluster-name",
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2,
      "preemptibility": "NON_PREEMPTIBLE"
    }
  }
}

Mettre à jour un cluster avec des instances préemptives

Utilisez l'API clusters.patch Dataproc pour ajouter et supprimer des nœuds de calcul secondaires.

Exemple

La requête PATCH suivante met à jour un cluster avec deux nœuds de calcul secondaires.


PATCH /v1/projects/project-id/regions/region/clusters/cluster-name?updateMask=config.secondary_worker_config.num_instances
{
  "config": {
    "secondaryWorkerConfig": {
      "numInstances": 2
    }
  }
}

Console

Vous pouvez spécifier le nombre de nœuds de calcul préemptifs lors de la création d'un cluster Dataproc à partir de Cloud Console. Une fois le cluster créé, vous pouvez ajouter et supprimer des nœuds de calcul préemptifs en modifiant sa configuration depuis Cloud Console.

Créer un cluster avec des instances préemptives

Ouvrez le panneau extensible nommé "Preemptible workers, bucket, network, version, initialization, & access options" (Options de nœuds de calcul préemptifs, de bucket, de réseau, de version, d'initialisation et d'accès) sur la page Dataproc Create a cluster (Créer un cluster) dans Cloud Console.

Ajoutez des nœuds de calcul préemptifs au nouveau cluster en spécifiant un nombre positif dans le champ Nodes (Nœuds).

Mettre à jour un cluster avec des instances préemptives

Une fois le cluster créé, vous pouvez modifier le nombre de nœuds de calcul préemptifs qu'il comporte. Pour ce faire, cliquez sur le bouton Edit (Modifier) dans l'onglet Configuration de la page Cluster details (Détails du cluster).

Pour modifier le nombre de nœuds de calcul préemptifs, spécifiez une nouvelle valeur dans le champ Preemptible worker nodes (Nœuds de calcul préemptifs).

Supprimer toutes les instances préemptives d'un cluster

Pour supprimer toutes les instances préemptives d'un cluster, mettez à jour la configuration du cluster comme expliqué ci-dessus, en spécifiant 0 dans le champ Preemptible worker nodes (Nœuds de calcul préemptifs).