Questo documento spiega come attivare i miglioramenti delle prestazioni di Dataproc Spark per aiutare i job Dataproc Spark a 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 del connettore BigQuery di Dataproc se utilizzato nei job Spark
- Miglioramenti all'esecuzione di Spark:
- Miglioramenti al motore di esecuzione 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 attivare i miglioramenti delle prestazioni di Dataproc Spark
Puoi utilizzare la console Google Cloud, Google Cloud CLI e l'API Dataproc per attivare i miglioramenti delle prestazioni di Dataproc Spark quando crei un cluster Dataproc su Compute Engine o quando invii il job Spark al cluster.
Console
Attivare i miglioramenti al momento della creazione del cluster
Per attivare i miglioramenti di esecuzione e ottimizzazione di Spark quando crei un cluster Dataproc, segui questi passaggi. 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 disabilitati in un cluster Dataproc.
- Nella console Google Cloud, apri la pagina 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, quindi scorri fino alla 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 attivare 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 attivare i miglioramenti dell'ottimizzazione di Spark:
- Completa la compilazione o la conferma degli altri campi di creazione del cluster, poi fai clic su Crea.
Attivare i miglioramenti al momento dell'invio del job
Per attivare le ottimizzazioni e i miglioramenti dell'esecuzione di Spark per un job Spark, svolgi i seguenti passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disattivati nei job Spark, a meno che non li attivi quando crei un cluster di job o per un job specifico.
- Nella console Google Cloud, apri la pagina Job di Dataproc.
- Nella pagina Job, fai clic su Invia job e poi scorri fino alla sezione Proprietà del job.
- Per attivare i miglioramenti dell'ottimizzazione di Spark:
- Fai clic su + AGGIUNGI PROPRIETÀ. Aggiungi "spark.dataproc.enhanced.optimizer.enabled" nel campo Key e "true" nel campo Value.
- Per attivare 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 job, quindi fai clic su Invia.
gcloud
Attivare i miglioramenti al momento della creazione del cluster
Per attivare i miglioramenti di esecuzione e ottimizzazione di Spark quando crei un cluster Dataproc, segui questi passaggi. 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 disabilitati in 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 cluster eliminato può essere riutilizzato.
- PROJECT_ID: il progetto da associare al cluster.
- REGION: la
regione Compute Engine
dove 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 in zona automatica di Dataproc seleziona una zona con la regione specificata.
- Puoi aggiungere il flag facoltativo
- IMAGE: i miglioramenti delle prestazioni di esecuzione e dell'ottimizzatore di Dataproc Spark sono disponibili nelle versioni immagine di Dataproc
2.0.69+
e2.1.17+
e nelle release successive. Se ometti questo flag, Dataproc selezionerà la versione subminor più recente dell'immagine Dataproc su Compute Engine predefinita per il cluster (vedi Versione immagine Dataproc predefinita). PROPERTIES:
- Per attivare i miglioramenti dell'ottimizzazione di Spark, specifica:
spark:spark.dataproc.enhanced.optimizer.enabled=true
- Per attivare 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 dell'esecuzione di Spark per un job Spark, svolgi i seguenti passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disattivati nei job Spark, a meno che non li attivi quando crei un cluster di job o per un job specifico.
Esegui il seguente comando gcloud dataproc jobs 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 attivare i miglioramenti dell'ottimizzazione di Spark, specifica:
spark.dataproc.enhanced.optimizer.enabled=true
- Per attivare i miglioramenti dell'esecuzione di Spark, specifica:
spark.dataproc.enhanced.execution.enabled=true
- Per attivare i miglioramenti di ottimizzazione ed esecuzione di 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 attivare i miglioramenti di esecuzione e ottimizzazione di Spark quando crei un cluster Dataproc, segui questi passaggi. 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 disabilitati in 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 attivare 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 dell'esecuzione di Spark per un job Spark, svolgi i seguenti passaggi. Per impostazione predefinita, i miglioramenti delle prestazioni di Dataproc Spark sono disattivati nei job Spark, a meno che non li attivi quando crei un cluster di job o per un job specifico.
Specifica il seguente
properties
per un SparkJob, PySparkJob, SparkSqlJob o SparkRJob nell'ambito di unajobs.submit
richiesta:- Per attivare i miglioramenti dell'ottimizzazione di Spark, specifica:
"spark.dataproc.enhanced.optimizer.enabled=true"
- Per attivare i miglioramenti dell'esecuzione di Spark, specifica:
"spark.dataproc.enhanced.execution.enabled=true"
- Per attivare i miglioramenti di ottimizzazione ed esecuzione di Spark, specifica:
"spark.dataproc.enhanced.execution.enabled=true,spark.dataproc.enhanced.optimizer.enabled=true"