Cette page a été traduite par l'API Cloud Translation.
Switch to English

Nœuds de calcul secondaires : VM préemptives et non préemptives

En plus d'utiliser des VM Compute Engine standards en tant que nœuds de calcul Dataproc (appelées nœuds de calcul "principaux"), les clusters Dataproc peuvent utiliser des nœuds de calcul "secondaires".

Les caractéristiques suivantes s'appliquent à tous les nœuds de calcul secondaires d'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. Par conséquent, vous pouvez utiliser les nœuds de calcul secondaires pour adapter le calcul sans effectuer le scaling de l'espace de stockage.

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

  • Type de machine : les nœuds de calcul secondaires 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.

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

  • Création asynchrone : lorsque vous ajoutez des nœuds de calcul secondaires en créant ou en faisant évoluer un cluster, les nœuds de calcul secondaires peuvent ne pas être provisionnés une fois l'opération de création ou de mise à jour terminée. En effet, Dataproc gère les nœuds de calcul secondaires à l'aide des groupes d'instances gérés (MIG, Managed Instance Groups), qui créent des VM de manière asynchrone dès qu'ils peuvent être provisionnés (consultez la sectionVérifier l'état des instances gérées).

Nœuds de calcul secondaires préemptifs et non préemptifs

Il existe deux types de nœuds de calcul secondaires : préemptifs et non préemptifs. Tous les nœuds de calcul secondaires de votre cluster doivent être du même type, préemptif ou non préemptif. La valeur par défaut est préemptif.

  • Nœuds de calcul secondaires préemptifs : les nœuds de calcul préemptifs sont le type de nœud de calcul secondaire par défaut. Ils sont récupérés et 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 à un moindre coût total (vous pouvez utiliser le Simulateur de coût Google Cloud pour estimer les coûts).

    • Pour des résultats optimaux, le nombre de nœuds de calcul préemptifs dans votre cluster doit être inférieur à 50 % du nombre total de nœuds de calcul (principal et tous les nœuds de calcul secondaires) de votre cluster.

    • En cas d'utilisation de nœuds de calcul préemptifs, vos tâches rencontreront probablement un plus grand nombre de défaillances temporaires de tâches à un seul nœud de calcul que les tâches exécutées sur des nœuds de calcul non préemptifs. Pour améliorer la tolérance des tâches aux défaillances de bas niveau, vous pouvez définir des valeurs de propriété de cluster semblables aux valeurs de propriété par défaut utilisées avec les clusters d'autoscaling pour augmenter le nombre maximal de tentatives d'exécution de tâches et éviter les défaillances de tâches.

  • Nœuds de calcul secondaires non préemptifs : vous pouvez créer un cluster avec des nœuds de calcul secondaires non préemptifs pour effectuer le scaling des calculs sans sacrifier la stabilité des tâches. Vous devez spécifier "non préemptif" comme type de nœud de calcul secondaire ("préemptif" est la valeur par défaut).

Utiliser des nœuds de calcul secondaires

Vous spécifiez le nombre et le type de nœuds de calcul secondaires (préemptifs ou non préemptifs) lorsque vous créez un cluster via une requête de l'API Dataproc à l'aide de l'outil de ligne de commande gcloud SDK Cloud ou depuis Google Cloud Console.

  • 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. Les mises à jour de libellés sont appliquées à tous les nœuds de calcul ajoutés à un cluster après une mise à jour de 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

Utilisez la commande gcloud dataproc clusters create pour ajouter des nœuds de calcul secondaires à un cluster lors de la création du cluster. Une fois le cluster créé, vous pouvez ajouter ou supprimer des nœuds de calcul secondaires vers ou depuis le cluster à l'aide de la commande gcloud dataproc clusters update (le nombre de nœuds de calcul secondaires peut être mis à jour, mais pas le type).

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

Pour créer un cluster avec des nœuds de calcul secondaires, 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

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

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 secondaires

Utilisez l'APIclusters.create Dataproc pour ajouter des nœuds de calcul secondaires à 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 nœuds de calcul secondaires

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 secondaires 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 secondaires en modifiant la configuration du cluster dans Cloud Console.

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

Vous pouvez définir le nombre et le type de nœuds de calcul secondaires à appliquer à un nouveau cluster dans la section "Nœuds de calcul secondaires" du panneau "Configurer les nœuds" de la page Dataproc Créer un cluster dans Cloud Console. Spécifiez le nombre et le type de nœuds de calcul secondaires dans les champs "Nœuds de calcul secondaires" et "Préemption".

Mettre à jour un cluster avec des instances secondaires

Pour mettre à jour le nombre de nœuds de calcul secondaires dans un cluster, cliquez sur le nom du cluster sur la page Clusters de Cloud Console. Sur la page Détails du cluster, cliquez sur l'onglet CONFIGURATION, puis cliquez sur MODIFIER et mettez à jour le numéro dans le champ "Nœuds de calcul secondaires".

Supprimer toutes les instances préemptives d'un cluster

Pour supprimer tous les nœuds de calcul secondaires d'un cluster, mettez à jour la configuration du cluster comme expliqué ci-dessus, en spécifiant 0 dans le champ "Nœuds de calcul secondaires".