Dataproc Serverless utilizza le proprietà Spark per determinare le risorse di calcolo, memoria e disco da allocare al carico di lavoro batch. Queste impostazioni delle proprietà possono influire sul consumo e sui costi della quota dei carichi di lavoro (vedi Quote di Dataproc Serverless e Prezzi di Dataproc Serverless per maggiori informazioni informazioni).
Impostazione delle proprietà dei carichi di lavoro batch Spark
Puoi specificare le proprietà Spark quando invia un carico di lavoro batch Spark serverless di Dataproc utilizzando la console Google Cloud, gcloud CLI o l'API Dataproc.
Console
Nella console Google Cloud, vai alla pagina Dataproc Create batch.
Nella sezione Proprietà, fai clic su Aggiungi proprietà, poi inserisci
Key
(nome) eValue
di un proprietà Spark supportata.
gcloud
Esempio di invio batch con gcloud CLI:
gcloud dataproc batches submit spark --properties=spark.checkpoint.compress=true \ --region=region \ other args ...
API
Imposta RuntimeConfig.properties con le proprietà Spark supportate come parte di un batches.create richiesta.
Proprietà Spark supportate
Dataproc Serverless per Spark supporta la maggior parte delle proprietà Spark, ma
non supporta le proprietà Spark correlate a YARN e shuffle, come
spark.master=yarn
e spark.shuffle.service.enabled
. Se si utilizza Spark
imposta una proprietà YARN o shuffle, l'applicazione avrà esito negativo.
Proprietà dell'ambiente di runtime
Dataproc Serverless per Spark supporta le seguenti proprietà Spark personalizzate per configurare l'ambiente di runtime:
Proprietà | Descrizione |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
Aggiungi EnvironmentVariableName al processo del conducente. Tu specificare più variabili di ambiente. |
Proprietà di allocazione delle risorse
Dataproc Serverless per Spark supporta le seguenti proprietà Spark per configurare l'allocazione delle risorse:
Proprietà | Descrizione | Predefinito | Esempi |
---|---|---|---|
spark.driver.cores |
Il numero di core (vCPU) da allocare al driver Spark.
Valori validi: 4 , 8 , 16 . |
4 |
|
spark.driver.memory |
La quantità di memoria da allocare al processo del driver Spark, specificato nel formato di stringa di memoria JVM con un suffisso di unità di dimensione ("m", "g" o "t"). Memoria totale del driver per core del driver, incluso l'overhead della memoria del driver,
che deve essere compreso tra |
512m , 2g |
|
spark.driver.memoryOverhead |
La quantità di memoria JVM aggiuntiva da allocare al driver Spark processo, specificato nel formato di stringa di memoria JVM con un suffisso dell'unità di dimensione ("m", "g" o "t"). Si tratta di memoria non heap associata all'overhead JVM,
stringhe interne e altri overhead nativi e include
memoria utilizzata da altri processi del driver, come quelli PySpark
e la memoria utilizzata da altri processi non
driver in esecuzione nel container.
La dimensione massima della memoria del container in cui viene eseguito il driver è
determinato dalla somma di Memoria totale del driver per core del driver, incluso l'overhead della memoria del driver,
deve essere compreso tra |
il 10% della memoria del driver, ad eccezione dei carichi di lavoro batch PySpark, che imposta come predefinita il 40% della memoria del conducente | 512m , 2g |
spark.dataproc.driver.compute.tier |
Il livello di computing da utilizzare nel driver. Il livello di computing Premium offre prestazioni per core più elevate, ma viene fatturato a una tariffa superiore. | standard | standard, premium |
spark.dataproc.driver.disk.size |
La quantità di spazio su disco allocata al driver,
specificato con un suffisso di unità di dimensione ("k", "m", "g" o "t").
Deve essere almeno 250GiB .
Se nel driver è selezionato il livello di disco Premium, sono indicate dimensioni valide
375 g, 750 g, 1500 g, 3000 g, 6000 g o 9000 g. |
100GiB per core |
1024g , 2t |
spark.dataproc.driver.disk.tier |
Il livello del disco da utilizzare per l'archiviazione locale e in ordine casuale sul driver.
Il livello disco Premium offre prestazioni migliori in termini di IOPS e velocità effettiva,
viene fatturato a una tariffa superiore. Se viene selezionato il livello di disco Premium
il driver, deve essere selezionato anche il livello di computing Premium utilizzando
spark.dataproc.driver.compute.tier=premium ,
e la quantità di spazio su disco deve essere specificata utilizzando
spark.dataproc.executor.disk.size .
Se è selezionato il livello di disco Premium, il driver alloca altri 50 GiB di spazio su disco per lo spazio di archiviazione di sistema, utilizzabili dalle applicazioni utente. | standard | standard, premium |
spark.executor.cores |
Il numero di core (vCPU) da allocare a ciascun esecutore Spark.
Valori validi: 4 , 8 , 16 . |
4 |
|
spark.executor.memory |
La quantità di memoria da allocare a ciascun processo esecutore Spark. specificato nel formato di stringa di memoria JVM con un suffisso di unità di dimensione ("m", "g" o "t"). Memoria totale degli esecutori per core di esecutore, inclusa la memoria degli esecutori
overhead, deve essere compreso tra |
512m , 2g |
|
spark.executor.memoryOverhead |
La quantità di memoria JVM aggiuntiva da allocare a Spark processo esecutore, specificato nel formato di stringa di memoria JVM con un'unità di dimensione ("m", "g" o "t"). Si tratta di memoria non heap utilizzata per l'overhead JVM, le stringhe interne
e altri overhead nativi, oltre alla memoria degli esecutori PySpark e
utilizzata da altri processi non esecutori in esecuzione nel container.
La dimensione massima della memoria del container in cui viene eseguito l'esecutore
determinato dalla somma di Memoria totale degli esecutori per core di esecutore, inclusa la memoria degli esecutori
overhead, deve essere compreso tra |
il 10% della memoria degli esecutori, ad eccezione dei carichi di lavoro batch PySpark, che per impostazione predefinita è il 40% della memoria dell'esecutore | 512m , 2g |
spark.dataproc.executor.compute.tier |
Il livello di computing da utilizzare sugli esecutori. Il livello di computing Premium offre prestazioni per core più elevate, ma viene fatturato a una tariffa superiore. | standard | standard, premium |
spark.dataproc.executor.disk.size |
La quantità di spazio su disco allocata a ciascun esecutore.
specificato con un suffisso di unità di dimensione ("k", "m", "g" o "t").
Lo spazio sul disco dell'esecutore può essere utilizzato per lo shuffling dei dati e lo stage
delle dipendenze. Deve essere almeno 250GiB .
Se nell'esecutore è selezionato il livello di disco Premium, vengono considerate dimensioni valide
375 g, 750 g, 1500 g, 3000 g, 6000 g o 9000 g. |
100GiB per core |
1024g , 2t |
spark.dataproc.executor.disk.tier |
Il livello del disco da utilizzare per l'archiviazione locale e in ordine casuale sugli esecutori.
Il livello disco Premium offre prestazioni migliori in termini di IOPS e velocità effettiva,
viene fatturato a una tariffa superiore. Se è selezionato il livello Premium del disco
esecutore, deve essere selezionato anche il livello di computing Premium utilizzando
spark.dataproc.executor.compute.tier=premium ,
e la quantità di spazio su disco deve essere specificata utilizzando
spark.dataproc.executor.disk.size .
Se viene selezionato il livello di disco Premium, ogni esecutore viene allocato altri 50 GiB di spazio su disco per lo spazio di archiviazione di sistema, utilizzabili dalle applicazioni utente. | standard | standard, premium |
spark.executor.instances |
Il numero iniziale di esecutori da allocare. Dopo un carico di lavoro batch
la scalabilità automatica potrebbe cambiare il numero di esecutori attivi. Deve essere
almeno 2 e al massimo 2000 . |
Proprietà di scalabilità automatica
Consulta Proprietà di allocazione dinamica di Spark per un elenco di proprietà Spark che puoi utilizzare per configurare Scalabilità automatica serverless di Dataproc.
Proprietà di logging
Proprietà | Descrizione | Predefinito | Esempi |
---|---|---|---|
spark.log.level |
Se impostato, sostituisce qualsiasi impostazione di log definita dall'utente con l'effetto
una chiamata a SparkContext.setLogLevel() all'avvio Spark. Valido
i livelli di log includono: ALL , DEBUG , ERROR ,
FATAL , INFO , OFF , TRACE ,
e WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Se impostato su true , il livello di log viene applicato tramite
il metodo SparkContext.setLogLevel() è
propagata a tutti gli esecutori. |
false |
true , false |
spark.log.level.PackageName |
Se configurato, sostituisce qualsiasi impostazione dei log definita dall'utente
con l'effetto di una chiamata a SparkContext.setLogLevel(PackageName, level)
all'avvio di Spark. I livelli di log validi includono: ALL , DEBUG ,
ERROR , FATAL , INFO , OFF ,
TRACE e WARN . |
spark.log.level.org.apache.spark=error |
Proprietà di pianificazione
Proprietà | Descrizione | Predefinito | Esempi |
---|---|---|---|
spark.scheduler.excludeShuffleSkewExecutors |
Escludi gli esecutori disallineati della mappa in ordine casuale durante la pianificazione, il che può ridurre lunghi tempi di attesa per il recupero casuale causati da un disallineamento della scrittura shuffle. | false |
true |
spark.scheduler.shuffleSkew.minFinishedTasks |
Numero minimo di attività di shuffle mappa completate su un esecutore da considerare come un disallineamento. | 10 |
100 |
spark.scheduler.shuffleSkew.maxExecutorsNumber |
Numero massimo di esecutori da trattare come disallineamento. Esecutori disallineati sono escluse dal ciclo di pianificazione corrente. | 5 | 10 |
spark.scheduler.shuffleSkew.maxExecutorsRatio |
Rapporto massimo degli esecutori totali da trattare come disallineamento. Esecutori disallineati sono escluse dalla pianificazione. | 0,05 | 0.1 |
spark.scheduler.shuffleSkew.ratio |
Un multiplo della media di attività di shuffling di mappa finite su una da considerare come un disallineamento. | 1,5 | 2.0 |
Altre proprietà
Proprietà | Descrizione |
---|---|
dataproc.diagnostics.enabled |
Abilita questa proprietà per eseguire la diagnostica in caso di errore di un carico di lavoro batch l'annullamento. Se la diagnostica è abilitata, il carico di lavoro batch continuerà a utilizzare di risorse di computing al termine del carico di lavoro fino al termine della diagnostica. Un URI che punta alla posizione del tarball di diagnostica è elencato nel Campo API Batch.RuntimeInfo.diagnosticOutputUri. |
dataproc.gcsConnector.version |
Utilizza questa proprietà per eseguire l'upgrade a un Versione del connettore Cloud Storage diversa dalla versione installata con il carico di lavoro batch, versione di runtime. |
dataproc.sparkBqConnector.version |
Utilizza questa proprietà per eseguire l'upgrade a un Versione del connettore BigQuery di Spark diversa dalla versione installata con il carico di lavoro batch, versione di runtime (vedi Utilizza il connettore BigQuery con Dataproc serverless per Spark). |
dataproc.profiling.enabled |
Imposta questa proprietà su true per attivare la profilazione per l'
Carico di lavoro serverless Dataproc. |
dataproc.profiling.name |
Utilizza questa proprietà per impostare il nome utilizzato per creare un profilo nella Profiler. |