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 argsUne 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éfinissezmachineTypeUri
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.

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