Les clusters Managed Service pour Apache Spark sont basés sur des instances Compute Engine. Les types de machines définissent les ressources matérielles virtualisées disponibles pour une instance. Compute Engine propose des types de machines prédéfinis et des types de machines personnalisés. Les clusters Managed Service pour Apache Spark peuvent utiliser des types prédéfinis et personnalisés pour les nœuds maîtres et les nœuds de calcul.
Les clusters Managed Service pour Apache Spark sont compatibles avec les types de machines prédéfinis Compute Engine suivants (la disponibilité des types de machines varie selon la région) :
- Types de machines à usage général, qui incluent les types de machines N1, N2, N2D, E2, C3, C4, N4 et N4D (Managed Service pour Apache Spark est également compatible avec les types de machines personnalisés N1, N2, N2D, E2, N4 et N4D).
Limites :
- Le type de machine n1-standard-1 n'est pas compatible avec les images 2.0 et ultérieures (le type de machine n1-standard-1 n'est pas recommandé pour les images antérieures à la version 2.0. Utilisez plutôt un type de machine avec une mémoire plus élevée).
- Les types de machines à cœur partagé ne sont pas compatibles, ce qui inclut les types de machines non compatibles suivants :
- E2 : types de machines à cœur partagé e2-micro, e2-small et e2-medium, et
- N1 : types de machines à cœur partagé f1-micro et g1-small.
- Managed Service pour Apache Spark sélectionne
hyperdisk-balancedcomme type de disque de démarrage si le type de machine est C4, N4 ou N4D.
- Types de machines optimisés pour le calcul, qui incluent les types de machines C2 et C2D.
- Types de machines à mémoire optimisée, y compris les types de machines M1 et M2
- Types de machines ARM, qui incluent les types de machines C4A.
Types de machines personnalisés
Managed Service pour Apache Spark est compatible avec les types de machines personnalisés des séries N1, N2, N2D, E2, N4 et N4D.
Les types de machines personnalisés sont parfaits pour les charges de travail suivantes :
- Les charges de travail qui ne conviennent pas aux types de machines prédéfinis
- 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
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 immédiatement supérieur, n1-standard-8, fournisse une capacité trop importante. Avec les types de machines personnalisés, vous pouvez créer des clusters Managed Service pour Apache Spark avec des nœuds maîtres et/ou des nœuds de calcul de milieu de gamme, dotés de six processeurs virtuels et de 25 Go de mémoire.
Spécifier un type de machine personnalisé
Les types de machines personnalisés utilisent une spécification machine type spéciale et sont soumis à des limites. Par exemple, la spécification de type de machine personnalisé pour une VM personnalisée avec 6 processeurs virtuels et 22,5 Go de mémoire est custom-6-23040.
Dans la spécification de type de machine, les nombres correspondent au nombre de processeurs virtuels dans la machine (6) et à la quantité de mémoire (23040). Celle-ci est calculée. en multipliant la quantité de mémoire en gigaoctets par 1024. (Pour plus d'informations, consultez la section Exprimer la mémoire en Go ou Mo.) Dans cet exemple, 22,5 (Go) est multiplié par 1 024 : 22.5 * 1024 = 23040.
Vous spécifiez le type de machine personnalisé lorsque vous créez un cluster. Vous pouvez définir le type de machine pour les nœuds maîtres ou de calcul, ou les deux, lorsque vous créez un cluster. Le nœud maître peut utiliser un type de machine personnalisé différent de celui utilisé par les nœuds de calcul. Le type de machine utilisé par tous les nœuds de calcul secondaires est identique à celui des nœuds de calcul primaires et ne peut pas être défini séparément. (Pour plus d'informations, consultez la page Nœuds de calcul secondaires : VM préemptives et non préemptives).
Tarifs des types de machines personnalisés
La tarification des types de machines personnalisés est basée sur les ressources utilisées dans la machine personnalisée. Les tarifs de Managed Service pour Apache Spark sont ajoutés au coût des ressources de calcul et sont basés sur le nombre total de processeurs virtuels (vCPU) utilisés dans un cluster.
Créer un cluster avec un type de machine spécifié
ConsoleGoogle Cloud
Commande gcloud CLI
Exécutez la commande gcloud dataproc clusters create avec les options suivantes pour créer un cluster Managed Service pour Apache Spark avec des types de machines de nœud de calcul et/ou de nœud maître :
- L'option
--master-machine-type machine-typevous permet de définir le type de machine prédéfini ou personnalisé utilisé par l'instance de VM maître de votre cluster (ou les instances maîtres si vous créez un cluster de haute disponibilité). - L'option
--worker-machine-type custom-machine-typevous permet de définir le type de machine prédéfini ou personnalisé utilisé par les instances de VM de nœud de calcul de votre cluster.
Exemple :
gcloud dataproc clusters create test-cluster / --master-machine-type custom-6-23040 / --worker-machine-type custom-6-23040 / other args
... 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
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
}
}
}
}
Créer un cluster avec un type de machine personnalisé et une extension de mémoire
Managed Service pour Apache Spark est compatible avec les types de machines personnalisés avec une mémoire étendue au-delà de la limite de 6,5 Go par vCPU (voir Tarifs de la mémoire étendue).
ConsoleGoogle Cloud
gcloud CLI
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 Managed Service pour Apache Spark avec un processeur et 50 Go de mémoire (50 * 1 024 = 51 200) dans 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
L'exemple d'extrait JSON <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<> suivant d'une requête clusters.create de l'API REST Dataproc spécifie 1 processeur et 50 Go de mémoire (50 * 1 024 = 51 200) dans chaque nœud :
...
"masterConfig": {
"numInstances": 1,
"machineTypeUri": "custom-1-51200-ext",
...
},
"workerConfig": {
"numInstances": 2,
"machineTypeUri": "custom-1-51200-ext",
...
...
Types de machines ARM
Managed Service pour Apache Spark permet de créer un cluster avec des nœuds qui utilisent des types de machines ARM, tels que le type de machine C4A.
Exigences et limites :
- L'image Managed Service pour Apache Spark doit être compatible avec le chipset ARM.
Les images Managed Service pour Apache Spark
2.1-ubuntu20-arm,2.2-ubuntu22-armet2.3-ubuntu22-arm(et le suffixe-armultérieur) sont compatibles avec le chipset ARM. Les images compatibles avec ARM ne sont pas compatibles avec de nombreux composants d'action d'initialisation et facultatifs, comme indiqué sur les pages des versions d'image. - Étant donné qu'une image doit être spécifiée pour un cluster, les nœuds maître, de calcul et de calcul secondaire doivent utiliser un type de machine ARM compatible avec l'image ARM Managed Service pour Apache Spark sélectionnée.
- Les fonctionnalités de Managed Service pour Apache Spark qui ne sont pas compatibles avec les types de machines ARM ne sont pas disponibles (par exemple, les SSD locaux ne sont pas compatibles avec les types de machines C4A).
- Les images ARM ne sont compatibles qu'avec les composants préinstallés et un ensemble limité de composants facultatifs. Les autres composants facultatifs et toutes les actions d'initialisation ne sont pas compatibles.
- Le moteur Lightning avec exécution de requêtes natives (NQE) est compatible avec les types de machines ARM lors de l'utilisation d'images
2.3-ubuntu22-arm.
Créer un cluster avec un type de machine ARM
Console
Pour créer un cluster Managed Service pour Apache Spark qui utilise un type de machine ARM, procédez comme suit :
- Ouvrez la page Créer un cluster de Managed Service pour Apache Spark.
- Dans Configuration du nœud de calcul, sélectionnez la famille de machines, la série et le type.
- Par défaut, les paramètres du nœud pilote (maître) sont identiques à ceux du nœud de calcul principal. Sous Configuration supplémentaire, vous pouvez modifier le nœud pilote pour décocher la case Définir par défaut le nœud pilote sur la même configuration que le nœud de calcul principal, puis spécifier les paramètres du nœud pilote.
gcloud
Pour créer un cluster Managed Service pour Apache Spark qui utilise un type de machine ARM, exécutez la commande gcloud suivante localement dans une fenêtre de terminal ou dans Cloud Shell. Cet exemple spécifie l'image 2.1-ubuntu20-arm et le type de machine ARM c4a-standard-4.
gcloud dataproc clusters create cluster-name \ --region=REGION \ --image-version=2.1-ubuntu20-arm \ --master-machine-type=c4a-standard-4 \ --worker-machine-type=c4a-standard-4
Remarques :
REGION : région dans laquelle le cluster sera situé.
Pour en savoir plus sur les flags de ligne de commande supplémentaires que vous pouvez utiliser pour personnaliser votre cluster, consultez la documentation de référence sur gcloud dataproc clusters create.
API
L'exemple de requête [clusters.create](/managed-spark/docs/reference/rest/v1/projects.regions.clusters/create) de l'API REST Dataproc suivant crée un cluster qui utilise le type de machine ARM `c4a-standard-4`.
POST /v1/projects/my-project-id/regions/is-central1/clusters/
{
"projectId": "my-project-id",
"clusterName": "sample-cluster",
"config": {
"configBucket": "",
"gceClusterConfig": {
"subnetworkUri": "default",
"zoneUri": "us-central1-a"
},
"masterConfig": {
"numInstances": 1,
**"machineTypeUri": "c4a-standard-4"**,
"diskConfig": {
"bootDiskSizeGb": 500,
}
},
"workerConfig": {
"numInstances": 2,
**"machineTypeUri": "c4a-standard-4"**,
"diskConfig": {
"bootDiskSizeGb": 500,
"numLocalSsds": 0
}
},
"softwareConfig": {
"imageVersion": "2.1-ubuntu20-arm"
}
}
}
Étapes suivantes
- Apprenez-en plus sur les VM ARM sur Compute.
- Découvrez comment créer une VM avec un type de machine personnalisé.
- Découvrez comment créer et démarrer une instance Compute Engine.