Miglioramenti delle prestazioni di Dataproc Spark

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.

  1. Nella console Google Cloud, apri Dataproc Crea un cluster .
  2. Nel modulo Crea cluster Dataproc, fai clic su Crea nella Riga Cluster su Compute Engine.
  3. Nella pagina Crea un cluster Dataproc su Compute Engine, fai clic sul riquadro Personalizza cluster e scorri fino Sezione Proprietà del cluster.
    1. Per attivare i miglioramenti dell'ottimizzazione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ.
      2. Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.optimizer.enabled" nel campo Chiave e "true" nel campo Valore.
    2. Per abilitare i miglioramenti dell'esecuzione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ.
      2. Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.execution.enabled" nel campo Chiave e "vero" nel campo Valore.
  4. 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.

  1. Nella console Google Cloud, apri Dataproc Offerte di lavoro .
  2. Nella pagina Job, fai clic su Invia job, quindi scorri fino alla sezione Proprietà del job.
    1. Per attivare i miglioramenti dell'ottimizzazione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ. Aggiungi "spark.dataproc.tende.ottimizzato.enabled" nel campo Chiave e "vero" nel campo Valore.
    2. Per abilitare i miglioramenti dell'esecuzione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ.
      2. Aggiungi "spark.dataproc.enhanced.execution.enabled" nel campo Chiave e "true" nel campo Valore.
  3. 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.

  1. 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 esempio us-central1-a. Se non specifichi una zona, Posizionamento della zona automatica di Dataproc seleziona una zona con la regione specificata.
    • IMAGE: le prestazioni di esecuzione e di ottimizzazione di Dataproc Spark sono disponibili miglioramenti nelle versioni immagine di Dataproc 2.0.69+ e 2.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.

  1. 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 o spark-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
      

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.

  1. Specifica quanto segue SoftwareConfig.properties nell'ambito di una richiesta clusters.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.

  1. Specifica il valore properties seguente per un SparkJob, PySparkJob, SparkSqlJob oppure SparkRJob nell'ambito di un jobs.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"