Ce document explique comment créer un cluster Managed Service pour Apache Spark en mode Haute disponibilité (HO). Le mode Haute disponibilité améliore la probabilité de provisionner correctement les VM de cluster pendant les périodes de forte demande ou de contraintes de ressources en permettant à Managed Service pour Apache Spark de choisir parmi une gamme de types de machines compatibles plutôt que d'exiger un type de machine fixe lors de la création d'un cluster.
Utilisez le mode Haute disponibilité pour créer des clusters avec des exigences de calcul à usage général afin d'éviter les échecs de création et de scaling de clusters dus à l'indisponibilité des VM.
Fonctionnement du mode Haute disponibilité
Dans les requêtes de création de cluster standards, vous spécifiez des types de machines spécifiques (tels que n2-standard-4) pour les nœuds du cluster. Si ce type de machine spécifique n'est pas disponible dans une zone, la requête de création échoue.
En mode Haute disponibilité, vous spécifiez des exigences de ressources flexibles pour les nœuds maître, les nœuds de calcul principaux et les nœuds de calcul secondaires, au lieu de types de machines fixes :
- Nombre de cœurs de processeurs virtuels : vous demandez un nombre cible de processeurs virtuels par instance de VM (2, 4, 8, 16 ou 32 cœurs).
Classe de matériel : vous spécifiez le profil de performances et de mémoire :
STANDARD: fournit une configuration équilibrée avec environ 4 Go de mémoire par vCPU et des niveaux de stockage persistant standards. Les types de machines candidats actuels incluentn4-standard,n4d-standard,n2-standardetn2d-standard(préférence de rang 0), ainsi quec4-standardetc4d-standard(préférence de rang 1).PERFORMANCE: fournit une configuration hautes performances avec environ 8 Go de mémoire par processeur virtuel et des configurations de disque de niveau supérieur (IOPS et débit plus élevés). Les types de machines candidats actuels incluentn4-highmem,n4d-highmem,n2-highmemetn2d-highmem(préférence de rang 0), ainsi quec4-highmemetc4d-highmem(préférence de rang 1).
Nombre d'instances : vous spécifiez le nombre d'instances pour chaque groupe :
- Maître : doit être une instance.
- Nœuds de calcul principaux : entier positif.
- Nœuds de calcul secondaires : entier non négatif.
Taille du disque de démarrage : taille facultative du disque de démarrage (par exemple, 100 Go).
Managed Service pour Apache Spark utilise automatiquement la sélection de zone automatique pour évaluer les zones de la région du cluster et sélectionner les types de machines candidats dans la classe de matériel demandée qui disposent d'une capacité disponible.
Conditions requises et limites
Le mode Haute disponibilité est soumis aux exigences et limites suivantes :
- Quotas de ressources : votre projet doit disposer de quotas de ressources Compute Engine suffisants dans la région du cluster pour toutes les familles de machines candidates de la classe de matériel sélectionnée (
N4,N4D,N2,N2D,C4etC4D). Étant donné que les types de machines candidats sous-jacents sont contrôlés par Google et peuvent changer à tout moment, ne dépendez pas de types de machines spécifiques. - Spécification de la zone : vous ne pouvez pas spécifier explicitement
--zone(ouzoneUri). Managed Service pour Apache Spark sélectionne automatiquement une zone disponible dans la région à l'aide de la sélection de zone automatique. - Exclusivité mutuelle avec les configurations de machines et de nœuds fixes :
- Lorsque vous configurez des groupes de nœuds maîtres, de nœuds de calcul principaux ou de nœuds de calcul secondaires avec des configurations flexibles (
--master-flexible-config,--worker-flexible-configou--secondary-worker-flexible-config), vous ne pouvez pas spécifier de type de machine standard, de sélection d'instances, de nombre d'instances, de disque ou d'options d'accélérateur pour ces groupes de nœuds :- Master : ne peut pas être combiné avec
--master-machine-type,--master-machine-types,--master-instance-selection,--master-instance-flexibility-policy-file,--master-boot-disk-size,--master-boot-disk-type,--num-master-local-ssds,--master-acceleratorou--master-min-cpu-platform. - Nœuds de calcul principaux : ne peut pas être combiné avec
--num-workers,--worker-machine-type,--worker-machine-types,--worker-instance-selection,--worker-instance-flexibility-policy-file,--worker-boot-disk-size,--worker-boot-disk-type,--num-worker-local-ssds,--worker-acceleratorou--worker-min-cpu-platform. - Nœuds de calcul secondaires : ne peut pas être combiné avec
--num-secondary-workers,--secondary-worker-type,--secondary-worker-machine-types,--secondary-worker-instance-selection,--secondary-worker-instance-flexibility-policy-file,--secondary-worker-boot-disk-size,--secondary-worker-boot-disk-type,--num-secondary-worker-local-ssdsou--secondary-worker-accelerator.
- Master : ne peut pas être combiné avec
- Dans un cluster multinœud, si le mode haute disponibilité est activé pour le groupe de nœuds maîtres, le groupe de nœuds de calcul principaux doit également utiliser des configurations flexibles (
--worker-flexible-config). - Si des nœuds de calcul secondaires sont utilisés dans un cluster à haute disponibilité, ils doivent utiliser
--secondary-worker-flexible-configplutôt que les options de nœuds de calcul secondaires standards.
- Lorsque vous configurez des groupes de nœuds maîtres, de nœuds de calcul principaux ou de nœuds de calcul secondaires avec des configurations flexibles (
- Clusters à nœud unique : dans un cluster à nœud unique (
--single-nodeou--cluster-type=single-node), seul--master-flexible-configpeut être spécifié. Les options de configuration flexibles des nœuds de calcul principaux et secondaires ne sont pas acceptées. - Mises à jour de cluster : vous pouvez mettre à jour le nombre d'instances (
num-instances) pour les nœuds de calcul principaux et secondaires à l'aide degcloud dataproc clusters update. Le nombre de cœurs, la classe de matériel et la taille du disque de démarrage sont des spécifications définies au moment de la création et ne peuvent pas être modifiées par la suite. - Clusters à haute disponibilité : les clusters à haute disponibilité (clusters avec trois nœuds maîtres) ne sont pas compatibles avec le mode Haute disponibilité. Le nombre d'instances de maître doit être de 1.
Créer un cluster à haute disponibilité
Vous pouvez créer un cluster en mode Haute disponibilité à l'aide de la Google Cloud CLI ou de l'API Dataproc.
gcloud
Pour créer un cluster en mode haute disponibilité, exécutez la commande gcloud dataproc clusters create avec les options --master-flexible-config et --worker-flexible-config.
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=1,boot-disk-size=BOOT_DISK_SIZE" \
--worker-flexible-config="cores=CORES,hardware-class=HARDWARE_CLASS,num-instances=NUM_WORKERS,boot-disk-size=BOOT_DISK_SIZE"
Remplacez les éléments suivants :
CLUSTER_NAME: nom du cluster.REGION: région Compute Engine du cluster, par exempleus-central1. Ne spécifiez pas de--zone.CORES: nombre de processeurs virtuels par instance de VM. Doit être une puissance de 2 (2,4,8,16ou32).HARDWARE_CLASS: classe de profil matériel,STANDARDouPERFORMANCE.NUM_WORKERS: nombre de nœuds de calcul principaux dans le cluster.BOOT_DISK_SIZE: taille du disque de démarrage, par exemple100GB.
Ajouter des nœuds de calcul secondaires
Pour ajouter des nœuds de calcul secondaires en mode haute disponibilité, incluez l'option --secondary-worker-flexible-config :
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--master-flexible-config="cores=4,hardware-class=STANDARD,num-instances=1,boot-disk-size=100GB" \
--worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB" \
--secondary-worker-flexible-config="cores=4,hardware-class=STANDARD,num-instances=2,boot-disk-size=100GB"
Créer un cluster à nœud unique
Pour créer un cluster à haute disponibilité à nœud unique, spécifiez --single-node (ou --cluster-type=single-node) avec --master-flexible-config et omettez les options de configuration flexible des nœuds de calcul :
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
Mettre à jour la capacité des nœuds de calcul du cluster
Pour faire évoluer le nombre de nœuds de calcul principaux ou secondaires sur un cluster à haute disponibilité existant, utilisez la commande gcloud dataproc clusters update :
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
Pour créer un cluster à haute disponibilité à l'aide de l'API REST, envoyez une requête clusters.create. Dans l'objet ClusterConfig :
- Laissez
gceClusterConfig.zoneUrivide (ou omettez-le) pour activer la sélection de zone automatique. - Spécifiez les objets
masterFlexibleConfigetworkerFlexibleConfig.
Méthode HTTP et URL :
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
Corps JSON de la requête :
{
"projectId": "PROJECT_ID",
"clusterName": "CLUSTER_NAME",
"config": {
"gceClusterConfig": {
"zoneUri": ""
},
"masterFlexibleConfig": {
"numInstances": 1,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
},
"workerFlexibleConfig": {
"numInstances": 2,
"coreCount": 4,
"hardwareClass": "STANDARD",
"bootDiskSizeGb": 100
}
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .REGION: région Compute Engine dans laquelle le cluster sera créé, par exempleus-central1.CLUSTER_NAME: nom du cluster.
Facultatif : Pour ajouter des nœuds de calcul secondaires, incluez l'objet secondaryWorkerFlexibleConfig avec les valeurs numInstances, coreCount, hardwareClass et bootDiskSizeGb souhaitées.
Étapes suivantes
- En savoir plus sur la sélection de zone automatique.
- Découvrez comment prioriser les types de VM avec des VM flexibles.
- Découvrez comment faire évoluer les clusters Managed Service pour Apache Spark.