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 delle quote dei carichi di lavoro (per ulteriori informazioni, consulta le quote di Dataproc Serverless e i prezzi di Dataproc Serverless).
Impostazione delle proprietà dei carichi di lavoro batch Spark
Puoi specificare le proprietà Spark quando invii 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 i valori
Key
(nome) eValue
di una 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 una richiesta batches.create.
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 il codice dell'applicazione 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 la configurazione dell'ambiente di runtime:
Proprietà | Descrizione |
---|---|
spark.dataproc.driverEnv.EnvironmentVariableName |
Aggiungi EnvironmentVariableName al processo del conducente. Puoi specificare più variabili di ambiente. |
Proprietà di allocazione delle risorse
Dataproc Serverless per Spark supporta le seguenti proprietà Spark per la configurazione dell'allocazione delle risorse:
Proprietà | Descrizione | Predefinita | 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, specificata nel formato di stringa di memoria JVM con un suffisso dell'unità di dimensione ("m", "g" o "t"). Memoria totale del driver per core del driver, compreso 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 processo del driver Spark, specificata 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, alle stringhe interne e ad altri overhead nativi, e include la memoria utilizzata da altri processi driver, ad esempio i processi del driver PySpark, e la memoria utilizzata da altri processi diversi dal driver in esecuzione nel container.
La dimensione massima della memoria del container in cui viene eseguito il driver è
determinata dalla somma di La memoria totale del driver per core del driver, incluso l'overhead della memoria del driver,
deve essere compresa tra |
10% della memoria del driver, ad eccezione dei carichi di lavoro batch PySpark, che per impostazione predefinita utilizzano il 40% della memoria del driver | 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 fatturata a una tariffa superiore. | standard | standard, premium |
spark.dataproc.driver.disk.size |
La quantità di spazio su disco allocata al driver,
specificata con un suffisso dell'unità di dimensione ("k", "m", "g" o "t").
Deve essere almeno 250GiB .
Se sul driver è selezionato il livello di disco Premium, le dimensioni valide sono 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, ma viene fatturata a una tariffa superiore. Se nel driver viene selezionato il livello del disco Premium, deve essere selezionato anche il livello di calcolo 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 viene selezionato il livello di disco Premium, il driver alloca altri 50 GiB di spazio su disco per l'archiviazione di sistema, che non è utilizzabile 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 ogni processo esecutore Spark, specificata nel formato di stringa di memoria JVM con un suffisso di unità di dimensione ("m", "g" o "t"). La memoria totale degli esecutori per core di esecutore, incluso l'overhead della memoria
dell'esecutore, deve essere compresa tra |
512m , 2g |
|
spark.executor.memoryOverhead |
La quantità di memoria JVM aggiuntiva da allocare al processo esecutore Spark, specificata nel formato di stringa di memoria JVM con un suffisso dell'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 e include la memoria degli esecutori PySpark e quella utilizzata da altri processi diversi dagli esecutori in esecuzione nel container.
La dimensione massima della memoria del container in cui viene eseguito l'esecutore è
determinata dalla somma di La memoria totale degli esecutori per core di esecutore, incluso l'overhead della memoria
dell'esecutore, deve essere compresa tra |
10% della memoria degli esecutori, ad eccezione dei carichi di lavoro batch PySpark, che per impostazione predefinita utilizzano il 40% della memoria degli esecutori | 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 fatturata a una tariffa superiore. | standard | standard, premium |
spark.dataproc.executor.disk.size |
La quantità di spazio su disco allocata a ogni esecutore,
specificata con un suffisso di unità di dimensione ("k", "m", "g" o "t").
Lo spazio su 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, le dimensioni valide sono 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, ma viene fatturata a una tariffa superiore. Se nell'esecutore viene selezionato il livello di disco Premium, 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, a ogni esecutore vengono assegnati altri 50 GiB di spazio su disco per l'archiviazione di sistema, che non è utilizzabile dalle applicazioni utente. | standard | standard, premium |
spark.executor.instances |
Il numero iniziale di esecutori da allocare. Dopo l'avvio di un carico di lavoro batch, la scalabilità automatica potrebbe modificare il numero di esecutori attivi. Deve essere almeno 2 e non più di 2000 . |
Proprietà di scalabilità automatica
Consulta Proprietà di allocazione dinamica di Spark per un elenco di proprietà Spark che puoi utilizzare per configurare la scalabilità automatica serverless di Dataproc.
Proprietà di logging
Proprietà | Descrizione | Predefinita | Esempi |
---|---|---|---|
spark.log.level |
Se configurato, esegue l'override di qualsiasi impostazione di log definita dall'utente con l'effetto di una chiamata a SparkContext.setLogLevel() all'avvio di Spark. I livelli di log validi includono: ALL , DEBUG , ERROR , FATAL , INFO , OFF , TRACE e WARN . |
INFO , DEBUG |
|
spark.executor.syncLogLevel.enabled |
Se impostato su true , il livello di log applicato tramite il metodo SparkContext.setLogLevel() viene propagato a tutti gli esecutori. |
false |
true , false |
spark.log.level.PackageName |
Se configurato, esegue l'override di qualsiasi impostazione di 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 |
Altre proprietà
Proprietà | Descrizione |
---|---|
dataproc.diagnostics.enabled |
Abilita questa proprietà per eseguire la diagnostica in caso di errore o annullamento di un carico di lavoro batch. Se la diagnostica è abilitata, il carico di lavoro batch continuerà a utilizzare le risorse di calcolo 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 una versione del connettore Cloud Storage diversa da quella installata con la versione di runtime del carico di lavoro batch. |
dataproc.sparkBqConnector.version |
Utilizza questa proprietà per eseguire l'upgrade a una versione del connettore BigQuery di Spark diversa da quella installata con la versione di runtime del carico di lavoro batch (vedi Utilizzare il connettore BigQuery con Dataproc Serverless per Spark). |