Questo documento mostra come abilitare i miglioramenti delle prestazioni di Dataproc Spark per consentire ai job di Dataproc Spark di elaborare più dati in meno tempo e a un costo ridotto.
I miglioramenti delle prestazioni di Dataproc Spark includono:
- Miglioramenti dell'ottimizzazione di Spark:
- Regole dell'ottimizzazione scritte per piani Spark migliori
- Prestazioni del connettore Dataproc BigQuery migliorate quando utilizzato nei job Spark
- Miglioramenti a Spark Execution:
- Miglioramenti al motore di esecuzione Spark
Altri miglioramenti delle prestazioni di Dataproc:consulta la sezione sulla memorizzazione nella cache dei cluster di Dataproc, che consente di ridurre il tempo dedicato all'accesso ai dati in Cloud Storage.
Abilitare i miglioramenti delle prestazioni di Dataproc Spark
Puoi utilizzare la console Google Cloud, Google Cloud CLI e l'API Dataproc per abilitare miglioramenti delle prestazioni di Dataproc Spark quando crei un cluster Dataproc su Compute Engine o quando invii il job Spark al cluster.
Console
Abilita i miglioramenti durante la creazione del cluster
Esegui i passaggi seguenti per abilitare i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark quando crei un cluster Dataproc. I miglioramenti abilitati rimangono validi 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 disabilitati su un cluster Dataproc.
- Nella console Google Cloud, apri la pagina Crea un cluster di Dataproc.
- 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, quindi scorri fino alla sezione Proprietà del cluster.
- Per abilitare i miglioramenti dell'ottimizzazione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ.
- Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.ottimizza.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 "true" nel campo Valore.
- Per abilitare i miglioramenti dell'ottimizzazione di Spark:
- Completa la compilazione o la conferma degli altri campi per la creazione del cluster, quindi fai clic su Crea.
Abilita i miglioramenti all'invio del job
Esegui i passaggi seguenti per abilitare le ottimizzazioni e i miglioramenti dell'esecuzione di Spark per un job Spark. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non abiliti i miglioramenti quando crei un cluster di job o li abiliti per un job specifico.
- Nella console Google Cloud, apri la pagina Job di Dataproc.
- Nella pagina Job, fai clic su Invia job, quindi scorri fino alla sezione
Proprietà del job.
- Per abilitare i miglioramenti dell'ottimizzazione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ. Aggiungi "spark.dataproc.enhanced.ottimizzatore.enabled" nel campo Chiave e "true" 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 abilitare i miglioramenti dell'ottimizzazione di Spark:
- Completa la compilazione o la conferma degli altri campi di invio del lavoro, quindi fai clic su Invia.
gcloud
Abilita i miglioramenti durante la creazione del cluster
Esegui i passaggi seguenti per abilitare i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark quando crei un cluster Dataproc. I miglioramenti abilitati rimangono validi 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 disabilitati 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: nome del cluster, che deve essere univoco all'interno di un progetto. Il nome deve iniziare con una lettera minuscola e può contenere un massimo di 51 lettere minuscole, numeri e trattini. Non può terminare con un trattino. Il nome di un cluster eliminato può essere riutilizzato.
- PROJECT_ID: il progetto da associare al cluster.
- REGION: la
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, la funzionalità di posizionamento automatico della zona di Dataproc seleziona una zona con la regione specificata.
- Puoi aggiungere il flag facoltativo
- IMAGE: i miglioramenti delle prestazioni di esecuzione e di ottimizzazione di Dataproc Spark sono disponibili nelle versioni per le immagini di Dataproc
2.0.69+
e2.1.17+
e versioni successive. Se ometti questo flag, Dataproc selezionerà la versione secondaria più recente dell'immagine predefinita di Dataproc su Compute Engine per il cluster (vedi Versione immagine di 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 abilitare i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark, specifica:
spark:spark.dataproc.enhanced.optimizer.enabled=true,spark:spark.dataproc.enhanced.execution.enabled=true
Abilita i miglioramenti all'invio del job
Esegui i passaggi seguenti per abilitare le ottimizzazioni e i miglioramenti dell'esecuzione di Spark per un job Spark. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non abiliti i miglioramenti quando crei un cluster di job o li abiliti per un job specifico.
Esegui il seguente comando gcloud dataproc job Submit in locale in una finestra del terminale o in 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 i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark, specifica:
spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
- SPARK_JOB_TYPE: specifica
API
Abilita i miglioramenti durante la creazione del cluster
Esegui i passaggi seguenti per abilitare i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark quando crei un cluster Dataproc. I miglioramenti abilitati rimangono validi 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 disabilitati su un cluster Dataproc.
Specifica quanto segue
SoftwareConfig.properties
come parte di una richiestaclusters.create
:- 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 abilitare i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark, specifica:
"spark:spark.dataproc.enhanced.optimizer.enabled": "true","spark:spark.dataproc.enhanced.execution.enabled": "true"
Abilita i miglioramenti all'invio del job
Esegui i passaggi seguenti per abilitare le ottimizzazioni e i miglioramenti dell'esecuzione di Spark per un job Spark. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disabilitati sui job Spark, a meno che non abiliti i miglioramenti quando crei un cluster di job o li abiliti per un job specifico.
Specifica
properties
per una richiesta SparkJob, PySparkJob, SparkSqlJob o SparkRJob come parte di una richiestajobs.submit
:- 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 i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark, specifica:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"