Questo documento mostra come attivare Dataproc Miglioramenti delle prestazioni di Spark per facilitare i job Dataproc Spark elaborare più dati in meno tempo con costi ridotti.
I miglioramenti delle prestazioni di Dataproc Spark includono:
- Miglioramenti a Spark Optimizer:
- Regole dell'ottimizzatore scritte per piani Spark migliori
- Miglioramento delle prestazioni di Dataproc Connettore BigQuery utilizzato nei job Spark
- Miglioramenti di Spark Execution:
- Miglioramenti al motore di esecuzione di Spark
Altri miglioramenti delle prestazioni di Dataproc: consulta la cache del cluster di Dataproc, che consente di ridurre il tempo necessario per accedere ai dati in Cloud Storage.
Come abilitare i miglioramenti delle prestazioni di Dataproc Spark
Puoi utilizzare la console Google Cloud, Google Cloud CLI e Dataproc API per abilitare i miglioramenti delle prestazioni di Dataproc Spark quando crei un cluster Dataproc su Compute Engine o quando il tuo job Spark al cluster.
Console
Attivare i miglioramenti al momento della creazione del cluster
Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark quando per creare un cluster Dataproc. I miglioramenti abilitati rimangono applicati per tutti i job Spark inviati al cluster, a meno che non disabiliti i miglioramenti per un job specifico quando invii il job. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitate su un cluster Dataproc.
- Nella console Google Cloud, apri Dataproc Crea un cluster .
- Nel modulo Crea cluster Dataproc, fai clic su Crea nella Riga Cluster su Compute Engine.
- Nella pagina Crea un cluster Dataproc su Compute Engine,
fai clic sul riquadro Personalizza cluster e scorri fino
Sezione Proprietà del cluster.
- Per attivare i miglioramenti dell'ottimizzazione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ.
- Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.optimizer.enabled" nel campo Chiave e "true" nel campo Valore.
- Per abilitare i miglioramenti dell'esecuzione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ.
- Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.execution.enabled" nel campo Chiave e "vero" nel campo Valore.
- Per attivare i miglioramenti dell'ottimizzazione di Spark:
- Completa la compilazione o la conferma degli altri campi per la creazione del cluster, poi fai clic su Crea.
Abilita i miglioramenti all'invio del job
Per attivare le ottimizzazioni e i miglioramenti di esecuzione di Spark per un job Spark, segui questi passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non si abilitino i miglioramenti durante la creazione di un cluster di job o abilitarle per un job specifico.
- Nella console Google Cloud, apri Dataproc Offerte di lavoro .
- Nella pagina Job, fai clic su Invia job, quindi scorri fino alla sezione Proprietà del job.
- Per attivare i miglioramenti dell'ottimizzazione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ. Aggiungi "spark.dataproc.tende.ottimizzato.enabled" nel campo Chiave e "vero" nel campo Valore.
- Per abilitare i miglioramenti dell'esecuzione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ.
- Aggiungi "spark.dataproc.enhanced.execution.enabled" nel campo Chiave e "true" nel campo Valore.
- Per attivare i miglioramenti dell'ottimizzazione di Spark:
- Completa la compilazione o la conferma degli altri campi di invio del lavoro, poi fai clic su Invia.
gcloud
Abilita i miglioramenti durante la creazione del cluster
Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark quando per creare un cluster Dataproc. I miglioramenti attivati rimangono in vigore per tutti i job Spark inviati al cluster, a meno che non li disattivi per un job specifico al momento dell'invio. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitate su un cluster Dataproc.
Esegui il seguente comando gcloud dataproc clusters create in locale in una finestra del terminale o in Cloud Shell.
gcloud dataproc clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --region=REGION \ --image-version=IMAGE \ --properties=PROPERTIES
Note:
- CLUSTER_NAME: il nome del cluster, che deve essere univoco all'interno di un progetto. Il nome deve iniziare con una lettera minuscola e può contenere fino a 51 lettere minuscole, numeri e trattini. Non può terminare con un trattino. Il nome di un un cluster eliminato può essere riutilizzato.
- PROJECT_ID: il progetto da associare al cluster.
- REGION: il
Regione di Compute Engine
in cui si troverà il cluster, ad esempio
us-central1
.- Puoi aggiungere il flag facoltativo
--zone=ZONE
per specificare una zona all'interno della regione specificata, ad esempious-central1-a
. Se non specifichi una zona, Posizionamento della zona automatica di Dataproc seleziona una zona con la regione specificata.
- Puoi aggiungere il flag facoltativo
- IMAGE: le prestazioni di esecuzione e di ottimizzazione di Dataproc Spark
sono disponibili miglioramenti nelle versioni immagine di Dataproc
2.0.69+
e2.1.17+
e nelle release successive. Se ometti questo flag, Dataproc selezionerà l'ultima versione secondaria di Dataproc su Compute Engine predefinito per il cluster (vedi Versione immagine Dataproc predefinita). PROPERTIES:
- Per abilitare i miglioramenti dell'ottimizzazione di Spark, specifica:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Per abilitare i miglioramenti dell'esecuzione di Spark, specifica:
spark:spark.dataproc.enhanced.execution.enabled=true
- Per attivare i miglioramenti di ottimizzazione ed esecuzione di Spark, specifica:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Attivare i miglioramenti al momento dell'invio del job
Per attivare le ottimizzazioni e i miglioramenti di esecuzione di Spark per un job Spark, segui questi passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non si abilitino i miglioramenti durante la creazione di un cluster di job o abilitarle per un job specifico.
Esegui questo comando gcloud dataproc job send localmente in una finestra del terminale o Cloud Shell.
gcloud dataproc jobs submit SPARK_JOB_TYPE \ --cluster=CLUSTER_NAME \ --region=REGION \ --properties=PROPERTIES
Note:
- SPARK_JOB_TYPE: specifica
spark
,pyspark
,spark-sql
ospark-r
. - CLUSTER_NAME: il nome del job in cui verrà eseguito il job.
- REGION: la regione in cui si trova il cluster.
PROPERTIES:
- Per abilitare i miglioramenti dell'ottimizzazione di Spark, specifica:
spark.dataproc.enhanced.optimizer.enabled=true
- Per abilitare i miglioramenti dell'esecuzione di Spark, specifica:
spark.dataproc.enhanced.execution.enabled=true
- Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark, specifica:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
- SPARK_JOB_TYPE: specifica
API
Attivare i miglioramenti al momento della creazione del cluster
Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark quando per creare un cluster Dataproc. I miglioramenti attivati rimangono in vigore per tutti i job Spark inviati al cluster, a meno che non li disattivi per un job specifico al momento dell'invio. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitate su un cluster Dataproc.
Specifica quanto segue
SoftwareConfig.properties
nell'ambito di una richiestaclusters.create
:- Per attivare i miglioramenti dell'ottimizzazione di Spark, specifica:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true"
- Per abilitare i miglioramenti dell'esecuzione di Spark, specifica:
"spark:spark.dataproc.enhanced.execution.enabled": "true"
- Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark, specifica:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Attivare i miglioramenti al momento dell'invio del job
Per attivare le ottimizzazioni e i miglioramenti di esecuzione di Spark per un job Spark, segui questi passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non si abilitino i miglioramenti durante la creazione di un cluster di job o abilitarle per un job specifico.
Specifica il valore
properties
seguente per un SparkJob, PySparkJob, SparkSqlJob oppure SparkRJob nell'ambito di unjobs.submit
richiesta:- Per abilitare i miglioramenti dell'ottimizzazione di Spark, specifica:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Per abilitare i miglioramenti dell'esecuzione di Spark, specifica:
"spark.dataproc.enhanced.execution.enabled=true"
- Per abilitare l'ottimizzazione e i miglioramenti dell'esecuzione in Spark, specifica:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"