Questo documento descrive come creare un cluster Managed Service for Apache Spark in modalità High Obtainability (HO). La modalità di alta ottenibilità migliora la probabilità di eseguire correttamente il provisioning delle VM del cluster durante periodi di domanda elevata o di vincoli delle risorse, consentendo a Managed Service for Apache Spark di selezionare un tipo di macchina da una gamma di tipi di macchine compatibili anziché richiedere un tipo di macchina fisso durante la creazione di un cluster.
Utilizza la modalità Alta ottenibilità per creare cluster con requisiti di computing per uso generico per evitare errori di creazione e scalabilità dei cluster dovuti alla non disponibilità delle VM.
Come funziona la modalità Alta ottenibilità
Nelle richieste di creazione di cluster standard, specifichi tipi di macchine specifici (ad esempio
n2-standard-4) per i nodi del cluster. Se quel tipo di macchina specifico non è disponibile in una zona, la richiesta di creazione non va a buon fine.
In modalità Alta ottenibilità, specifichi requisiti di risorse flessibili per i nodi master, worker primario e worker secondario anziché tipi di macchine fissi:
- Numero di core vCPU: richiedi un numero target di vCPU per istanza VM (2, 4, 8, 16 o 32 core).
Classe hardware: specifica il profilo di prestazioni e memoria:
STANDARD: fornisce una configurazione bilanciata con circa 4 GB di memoria per vCPU e livelli di archiviazione permanente standard. I tipi di macchine candidati attuali includonon4-standard,n4d-standard,n2-standarden2d-standard(preferenza di ranking 0) ec4-standardec4d-standard(preferenza di ranking 1).PERFORMANCE: fornisce una configurazione ad alte prestazioni con circa 8 GB di memoria per vCPU e configurazioni di dischi di livello superiore (IOPS e throughput più elevati). I tipi di macchine candidati attuali includonon4-highmem,n4d-highmem,n2-highmemen2d-highmem(preferenza di ranking 0) ec4-highmemec4d-highmem(preferenza di ranking 1).
Numero di istanze: specifica il numero di istanze per ogni gruppo:
- Master: deve essere 1 istanza.
- Worker primari: numero intero positivo.
- Worker secondari: numero intero non negativo.
Dimensione disco di avvio: dimensione facoltativa del disco di avvio (ad esempio, 100 GB).
Managed Service for Apache Spark utilizza automaticamente il posizionamento automatico della zona per valutare le zone nella regione del cluster e selezionare i tipi di macchine candidati all'interno della classe hardware richiesta con capacità disponibile.
Requisiti e limitazioni
La modalità High Obtainability presenta i seguenti requisiti e limitazioni:
- Quote delle risorse: il tuo progetto deve avere quote delle risorse di Compute Engine sufficienti nella regione del cluster per tutte le famiglie di macchine candidate nella classe hardware selezionata (
N4,N4D,N2,N2D,C4eC4D). Poiché i tipi di macchina candidati sottostanti sono controllati da Google e possono cambiare in qualsiasi momento, non fare affidamento su tipi di macchina specifici. - Specifica della zona: non puoi specificare un
--zone(ozoneUri) esplicito. Managed Service for Apache Spark seleziona automaticamente una zona disponibile nella regione utilizzando il posizionamento Selezione automatica della zona. - Esclusività reciproca con configurazioni fisse di macchine e nodi:
- Quando configuri gruppi di nodi master, worker primari o worker secondari con configurazioni flessibili (
--master-flexible-config,--worker-flexible-configo--secondary-worker-flexible-config), non puoi specificare i flag per tipo di macchina standard, selezione delle istanze, numero di istanze, disco o acceleratore per questi gruppi di nodi:- Master: non può essere combinato con
--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-acceleratoro--master-min-cpu-platform. - Worker primari: non possono essere combinati con
--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-acceleratoro--worker-min-cpu-platform. - Worker secondari: non possono essere combinati con
--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-ssdso--secondary-worker-accelerator.
- Master: non può essere combinato con
- In un cluster multi-nodo, se la modalità di alta ottenibilità è abilitata per il gruppo di nodi master, anche il gruppo di nodi worker primario deve utilizzare configurazioni flessibili (
--worker-flexible-config). - Se i worker secondari vengono utilizzati in un cluster ad alta disponibilità, devono utilizzare
--secondary-worker-flexible-configanziché i flag dei worker secondari standard.
- Quando configuri gruppi di nodi master, worker primari o worker secondari con configurazioni flessibili (
- Cluster a nodo singolo: in un
cluster a nodo singolo
(
--single-nodeo--cluster-type=single-node), è possibile specificare solo--master-flexible-config. I flag di configurazione flessibile dei worker primari e secondari non sono supportati. - Aggiornamenti del cluster: puoi aggiornare il numero di istanze (
num-instances) per i worker principali e secondari utilizzandogcloud dataproc clusters update. Il numero di core, la classe hardware e le dimensioni del disco di avvio sono specifiche del momento della creazione e non possono essere modificate in un secondo momento. - Cluster ad alta affidabilità: i cluster ad alta affidabilità (HA) (cluster con tre nodi master) non sono supportati in modalità Alta disponibilità. Il numero di istanze master deve essere 1.
Crea un cluster ad alta ottenibilità
Puoi creare un cluster in modalità di alta disponibilità utilizzando Google Cloud CLI o l'API Dataproc.
gcloud
Per creare un cluster in modalità High Obtainability, esegui il comando gcloud dataproc clusters create con i flag --master-flexible-config e --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"
Sostituisci quanto segue:
CLUSTER_NAME: il nome del cluster.REGION: la regione di Compute Engine per il cluster, ad esempious-central1. Non specificare un--zone.CORES: il numero di vCPU per istanza VM. Deve essere una potenza di 2 (2,4,8,16o32).HARDWARE_CLASS: la classe del profilo hardware,STANDARDoPERFORMANCE.NUM_WORKERS: il numero di nodi worker principali nel cluster.BOOT_DISK_SIZE: le dimensioni del disco di avvio, ad esempio100GB.
Aggiungi worker secondari
Per aggiungere nodi worker secondari in modalità High Obtainability, includi il flag --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"
Crea un cluster a nodo singolo
Per creare un cluster ad alta disponibilità a nodo singolo, specifica --single-node (o --cluster-type=single-node) con --master-flexible-config e ometti i flag di configurazione flessibile dei worker:
gcloud dataproc clusters create CLUSTER_NAME \
--region=REGION \
--single-node \
--master-flexible-config="cores=4,hardware-class=STANDARD,boot-disk-size=100GB"
Aggiorna la capacità dei worker del cluster
Per scalare il numero di worker primari o secondari in un cluster ad alta disponibilità esistente, utilizza il comando gcloud dataproc clusters update:
gcloud dataproc clusters update CLUSTER_NAME \
--region=REGION \
--worker-flexible-config="num-instances=NEW_NUM_WORKERS"
REST
Per creare un cluster ad alta disponibilità utilizzando l'API REST, invia una richiesta clusters.create. Nell'oggetto ClusterConfig:
- Lascia vuoto
gceClusterConfig.zoneUri(o omettilo) per attivare il posizionamento Selezione automatica della zona. - Specifica gli oggetti
masterFlexibleConfigeworkerFlexibleConfig.
Metodo HTTP e URL:
POST https://dataproc.googleapis.com/v1/projects/PROJECT_ID/regions/REGION/clusters
Corpo JSON della richiesta:
{
"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
}
}
}
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto Cloud de Confiance by S3NS .REGION: la regione di Compute Engine in cui verrà creato il cluster, ad esempious-central1.CLUSTER_NAME: il nome del cluster.
(Facoltativo) Per aggiungere worker secondari, includi l'oggetto secondaryWorkerFlexibleConfig con i valori numInstances, coreCount, hardwareClass e bootDiskSizeGb desiderati.
Passaggi successivi
- Scopri di più sulla Selezione automatica della zona.
- Scopri di più su come assegnare la priorità ai tipi di VM con VM flessibili.
- Scopri come scalare i cluster Managed Service for Apache Spark.