VM flexibles Dataproc

Les VM flexibles sont une fonctionnalité Dataproc qui vous permet de spécifier listes des types de VM prioritaires pour Dataproc nœuds de calcul secondaires Créez un cluster Dataproc.

Pourquoi utiliser des VM flexibles ?

Auparavant, si un type de VM n'était pas disponible lorsque vous envoyez une requête de création de cluster, celle-ci a échoué, et vous deviez mettre à jour votre requête, script ou code pour spécifier une "prochaine meilleure" Type de VM. Ce Le processus de nouvelle demande peut impliquer plusieurs itérations jusqu'à ce que vous spécifiiez un type de VM qui était disponible.

La fonctionnalité de VM flexible de Dataproc vous aide à créer un cluster en sélectionnant des types de VM de nœuds de calcul secondaires dans vos listes de VM classées, puis en recherchant pour les zones de la région de cluster spécifiée, avec la disponibilité des types de VM répertoriés.

Terminologie

  • Type de VM: Famille, capacité de mémoire et nombre de cœurs de processeur d'une instance de VM. Dataproc permet d'utiliser types de VM prédéfinis et personnalisés.

  • Nœuds de calcul secondaires: Nœuds de calcul secondaires ne stockent pas de données. Ils servent uniquement de nœuds de traitement. Vous pouvez utiliser des nœuds de calcul secondaires pour faire évoluer les ressources de calcul sans faire évoluer le stockage.

Limites et points à noter

  • Les VM flexibles sont disponibles dans Dataproc sur 2.0.74+ Compute Engine, Dataproc sur Compute Engine à partir de 2.1.22+ versions d'image.

  • Pendant la phase preview:

    • Vous ne pouvez spécifier des VM flexibles que pour les nœuds de calcul secondaires.
    • Vous pouvez spécifier Spot ou non préemptif types de nœuds de calcul secondaires en tant que VM flexibles, mais pas les deux, dans votre requête de création de cluster. Si vous ne spécifiez pas de type de nœud de calcul secondaire, Dataproc utilise des VM Spot, qui sont préemptives.
  • Vous pouvez spécifier jusqu'à cinq listes de types de VM classés, comportant jusqu'à 10 types de VM dans une liste. Pour en savoir plus, consultez la section Demander des VM flexibles.

  • La création d'un cluster avec des VM flexibles nécessite l'utilisation Sélection de zone automatique Dataproc, permet à Dataproc de choisir la zone capable de traiter vos requêtes de type de VM.

  • Si votre requête de création de cluster inclut un règle d'autoscaling, Les VM flexibles peuvent provenir de différentes familles de VM, mais elles doivent avoir le même la quantité de mémoire et le nombre de cœurs.

  • Lors du provisionnement de VM flexibles, Dataproc utilise "toutes les correspondances" disponibles, mais pas "spécifiques" de réservation (voir Consommer les instances réservées). Les types de machines qui correspondent aux réservations sont d'abord sélectionnés dans un rang, suivis par Types de VM avec le plus grand nombre de processeurs.

  • Dataproc applique des quotas Google Cloud au provisionnement flexible des VM.

  • Bien que vous puissiez spécifier des ratios processeur/mémoire différents pour les instances nœuds de calcul secondaires V dans un cluster, cela peut entraîner une dégradation des performances car le plus petit ratio CPU/mémoire est utilisé comme la plus petite unité de conteneur.

  • Si vous mettez à jour un cluster créé à l'aide de VM flexibles, Dataproc sélectionne et ajoute des nœuds de calcul à partir des listes de VM flexibles qui que vous avez fournis lors de la création de votre cluster.

Demander des VM flexibles

Vous pouvez spécifier des VM flexibles lorsque vous créez un cluster Dataproc à l'aide de la console Google Cloud, de Google Cloud CLI ou de l'API Dataproc.

  • Vous pouvez spécifier jusqu'à cinq listes de types de VM classés, comportant jusqu'à 10 types de VM dans une liste. Les listes les moins bien classées sont celles dont la priorité est la plus élevée. Par défaut, la configuration Les listes de VM ont un rang de 0. Dans une liste, Dataproc donne la priorité aux VM avec des réservations inutilisées, suivis des plus grandes tailles de VM. Les types de VM d'une liste ayant le même nombre de processeurs sont traités de la même manière.

Console

Pour créer un cluster avec des VM de nœuds de calcul secondaires flexibles:

  1. Ouvrir Dataproc Créer un cluster sur Compute Engine de la console Google Cloud.

  2. Le panneau Configurer le cluster est sélectionné et les champs sont renseignés avec les valeurs par défaut. valeurs. Vous pouvez modifier le nom suggéré et la région du cluster. apporter d'autres modifications. Assurez-vous que l'option Tout est sélectionnée en tant que cluster. Zone à autoriser Emplacement des zones automatiques Dataproc choisir la zone offrant la meilleure disponibilité types de VM spécifiés dans vos listes de VM flexibles.

  3. Sélectionnez le panneau Configurer les nœuds. Dans Nœuds de calcul secondaires spécifiez le nombre de nœuds de calcul secondaires et leur préemption.

    • Cliquez sur Ajouter un nœud de calcul secondaire pour chaque niveau de nœuds de calcul secondaires. spécifiant un ou plusieurs types de machines à inclure dans chaque rang.
  4. Après avoir confirmé et spécifié les détails du cluster dans les panneaux de création de cluster, cliquez sur Créer.

gcloud

Utilisez le gcloud dataproc clusters create pour ajouter plusieurs indicateurs secondary-worker-machine-types afin de spécifier le classement de VM flexibles pour Nœuds de calcul secondaires Dataproc Le type de nœud de calcul secondaire de la VM flexible par défaut est Spot, qui est un type préemptif.

Dans l'exemple de gcloud CLI suivant, Dataproc tente pour provisionner des nœuds de calcul secondaires avec n2-standard-8 VM en premier (rang 0). Si Les machines n2-standard-8 ne sont pas disponibles, Dataproc tente pour provisionner des nœuds de calcul secondaires avec e2-standard-8 ou t2d-standard-8 VM (classement 1).

gcloud dataproc clusters create CLUSTER_NAME \
    --region=REGION \
    --zone="" \
    --master-machine-type=n1-standard-8 \
    --worker-machine-type=n1-standard-8 \
    --num-workers=4 \
    --num-secondary-workers=4 \
    --secondary-worker-type=non-preemptible \
    --secondary-worker-machine-types="type=n2-standard-8,rank=0" \
    --secondary-worker-machine-types="type=e2-standard-8,type=t2d-standard-8,rank=1"

Remarques :

  • --zone="": la fonctionnalité de VM flexible nécessite Sélection de zones automatiques Dataproc pour et autorisez Dataproc à choisir la zone dans laquelle se trouvent types de VM disponibles. Transmettre une valeur vide ("") à l'indicateur --zone remplace toute sélection de zone spécifiée dans votre gcloud config list

  • Dataproc génère les propriétés role des composants en fonction de la machine les cœurs et la mémoire. Vous pouvez remplacer ces propriétés générées par le système --properties en utilisant la syntaxe suivante:

    --properties="ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE"
    

    Dans la version preview, le rôle secondary_worker est le seul rôle compatible.

    Dans l'exemple suivant, l'option --properties modifie le nombre de cœurs des e2-standard-8 machines affectées aux nœuds de calcul secondaires de 8 à 6:

    --properties="secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"
    

API

Utilisez le instanceFlexibilityPolicy.instanceSelectionList dans le cadre d'une API Dataproc clusters.create pour spécifier une liste classée de machineTypes pour les nœuds de calcul secondaires.

Exemple :

L'extrait de code JSON suivant issu d'un fichier Dataproc clusters.create corps de la requête spécifie les types de machines des nœuds de calcul secondaires pour les rangs 0 et 1.

"config": {
  "secondaryWorkerConfig": {
    "instanceFlexibilityPolicy": {
      "instanceSelectionList": [
        {
          "machineTypes": [
            "n1-standard-4",
            "n2-standard-4"
          ],
          "rank": 0
        },
        {
          "machineTypes": [
            "e2-standard-4",
            "n2d-standard-4"
          ],
          "rank": 1
        }
      ]
    }
  }
}

Utiliser les propriétés du cluster pour personnaliser les rôles des composants:Dataproc génère les propriétés role des composants en fonction des cœurs de VM et de la mémoire. Vous pouvez remplacer ces propriétés générées par le système en ajoutant SoftwareConfig.properties à votre requête clusters.create, à l'aide de la syntaxe key=value suivante:

ROLE:MACHINE_TYPE:COMPONENT_PREFIX:COMPONENT_PROPERTY=VALUE

Dans la version preview, le rôle secondary_worker est le seul rôle compatible.

Dans l'exemple suivant, le champ properties modifie le nombre de cœurs attribué au nœud de calcul secondaire d'une VM e2-standard-8 de 8 à 6:

"secondary_worker:e2-standard-8:yarn:yarn.nodemanager.resource.cpu-vcores=6"