Machines personnalisées

Les clusters Google Cloud Dataproc sont construits sur des instances Google Compute Engine. Les types de machines définissent les ressources matérielles virtualisées disponibles pour une instance. Compute Engine propose à la fois des types de machines prédéfinis et des types de machines personnalisés. Les clusters Cloud Dataproc peuvent utiliser des types standards et personnalisés pour le nœud maître et/ou les nœuds de calcul.

Cas d'utilisation pour des types de machines personnalisés

Comme indiqué dans la documentation relative aux types de machines personnalisés, les types de machines personnalisés conviennent parfaitement aux charges de travail suivantes :

  • Les charges de travail qui ne conviennent pas aux types de machines prédéfinis
  • Les charges de travail qui nécessitent davantage de puissance de traitement ou de mémoire, sans pour autant nécessiter toutes les mises à niveau fournies par le type de machine de niveau supérieur

Exemple

Par exemple, supposons que votre charge de travail nécessite plus de puissance de traitement que celle fournie par une instance n1-standard-4, mais que l'instance de niveau supérieur, n1-standard-8, fournit une capacité trop importante. Les types de machines personnalisés vous permettent de créer des clusters Cloud Dataproc avec un nœud maître et/ou des nœuds de calcul comprenant un niveau intermédiaire de six processeurs virtuels et 25 Go de mémoire.

Prix

Les tarifs du type de machine personnalisé varient en fonction des ressources utilisées dans une machine personnalisée. Les tarifs de Dataproc sont ajoutés au coût des ressources de calcul que vous utilisez et sont basés sur le nombre total de processeurs virtuels utilisés dans un cluster.

Utiliser les types de machines personnalisés avec Cloud Dataproc

À l'heure actuelle, la création de clusters avec des types de machines personnalisés est uniquement compatible avec la commande gcloud dataproc du SDK Google Cloud.

Comprendre les types de machines personnalisés

Avant de créer un cluster avec des types de machines personnalisés, consultez la section Créer une instance de VM avec un type de machine personnalisé pour prendre en compte des considérations importantes, y compris les spécifications de type personnalisé et les tarifs.

Les types de machines personnalisés utilisent une spécification machine type spéciale. Par exemple, vous trouverez ci-dessous la spécification de type de machine personnalisé pour une VM personnalisée avec six processeurs virtuels et 22,5 Go de mémoire :

custom-6-23040

Les nombres dans le type de machine correspondent au nombre de processeurs virtuels dans la machine (dans ce cas 6) et à la quantité de mémoire (dans ce cas 23040). La quantité de mémoire est calculée en multipliant la quantité de mémoire en gigaoctets par 1024. Dans cet exemple, nous multiplions 22,5 (Go) par 1 024 :

22.5 * 1024 = 23040

En respectant les limites des combinaisons processeur/mémoire, vous pouvez utiliser la syntaxe ci-dessus pour spécifier le type de machine personnalisé que vous souhaitez utiliser avec les clusters. Vous pouvez définir le type de machine pour le nœud maître et/ou les nœuds de calcul lorsque vous créez un cluster. Si vous définissez les deux nœuds, le nœud maître peut utiliser un type de machine personnalisé différent de celui utilisé par les nœuds de calcul. Les paramètres de type de machine associés aux nœuds de calcul préemptifs (secondaires) sont identiques à ceux des nœuds maîtres (primaires) et ne peuvent pas être définis séparément (consultez la section Fonctionnement des instances préemptives avec Cloud Dataproc).

Créer un cluster Cloud Dataproc avec des types de machines personnalisés

Commande gcloud

Exécutez la commande de création de clusters gcloud dataproc clusters create avec les options suivantes pour créer un cluster Cloud Dataproc comportant des types de machines personnalisés maîtres et/ou de calcul :
  • L'option --master-machine-type custom-machine-type vous permet de définir le type de machine personnalisé utilisé par l'instance de VM maître du cluster (ou d'instances maîtres si vous créez un cluster à haute disponibilité).
  • L'option --worker-machine-type custom-machine-type vous permet de définir le type de machine personnalisé utilisé par les instances de VM de calcul dans le cluster.

Exemple :

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-6-23040 /
    --worker-machine-type custom-6-23040 /
    other args
Une fois le cluster Cloud Dataproc lancé, les détails du cluster sont affichés dans la fenêtre du terminal. Vous trouverez ci-dessous à titre d'exemple, une liste non exhaustive des propriétés du cluster affichée dans la fenêtre du terminal :
...
properties:
  distcp:mapreduce.map.java.opts: -Xmx1638m
  distcp:mapreduce.map.memory.mb: '2048'
  distcp:mapreduce.reduce.java.opts: -Xmx4915m
  distcp:mapreduce.reduce.memory.mb: '6144'
  mapred:mapreduce.map.cpu.vcores: '1'
  mapred:mapreduce.map.java.opts: -Xmx1638m
...

API REST

Pour créer un cluster avec des types de machines personnalisés, définissez machineTypeUri dans masterConfig et/ou workerConfig InstanceGroupConfig dans la requête API cluster.create.

Exemple :
POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
  "projectId": "my-project-id",
  "clusterName": "test-cluster",
  "config": {
    "configBucket": "",
    "gceClusterConfig": {
      "subnetworkUri": "default",
      "zoneUri": "us-central1-a"
    },
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "n1-highmem-4",
      "diskConfig": {
        "bootDiskSizeGb": 500,
        "numLocalSsds": 0
      }
    }
  }
}

Console

Lorsque vous créez un cluster Cloud Dataproc à partir de la page Créer un cluster, cliquez sur Personnaliser dans la section "Type de machine" du panneau "Nœud maître" et/ou "Nœuds de calcul", puis indiquez le nombre de cœurs et la quantité de mémoire souhaités. Les libellés de la console et le texte d'aide vous aident à sélectionner des valeurs de type de machine personnalisé valides.

La capture d'écran suivante montre les valeurs du nœud maître et des nœuds de calcul pour créer un cluster avec six processeurs virtuels et 22,5 Go de mémoire pour chaque nœud.
Cliquez sur Plus de mémoire pour fournir des valeurs d'extension de mémoire au nœud maître et/ou aux nœuds de calcul.

Extension de mémoire du processeur

Cloud Dataproc est compatible avec les types de machines personnalisés comportant une extension de mémoire dépassant la limite de 6,5 Go par processeur virtuel (consultez la section relative aux tarifs de l'extension de mémoire).

Utiliser l'extension de mémoire

Commande gcloud

Pour créer un cluster à partir de la ligne de commande gcloud, qui comporte des processeurs personnalisés avec une extension de mémoire, ajoutez un suffixe -ext aux options ‑‑master-machine-type et/ou ‑‑worker-machine-type.

Exemple

L'exemple de ligne de commande gcloud suivant crée un cluster Cloud Dataproc avec un processeur et 50 Go de mémoire (50 * 1 024 = 51 200) pour chaque nœud :

gcloud dataproc clusters create test-cluster /
    --master-machine-type custom-1-51200-ext /
    --worker-machine-type custom-1-51200-ext /
    other args

API REST

Dans l'extrait de code JSON suivant, donné à titre d'exemple et provenant d'une requête de création de cluster clusters.create dans l'API REST Cloud Dataproc, un processeur et 50 Go de mémoire (50 * 1 024 = 51 200) sont spécifiés pour chaque nœud :

...
    "masterConfig": {
      "numInstances": 1,
      "machineTypeUri": "custom-1-51200-ext",
    ...
    },
    "workerConfig": {
      "numInstances": 2,
      "machineTypeUri": "custom-1-51200-ext",
     ...
...

Console

Cliquez sur Plus de mémoire lors de la personnalisation de la mémoire du type de machine dans la section "Nœud maître" et/ou "Nœuds de calcul" de la page Cloud Dataproc Créer un cluster sur Cloud Console.

Pour en savoir plus

Consultez la section Créer une instance de VM avec un type de machine personnalisé.