Miglioramenti delle prestazioni di Dataproc Spark

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.

  1. Nella console Google Cloud, apri la pagina Crea un cluster di Dataproc.
  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, quindi scorri fino alla sezione Proprietà del cluster.
    1. Per abilitare i miglioramenti dell'ottimizzazione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ.
      2. Seleziona spark nell'elenco Prefisso, quindi aggiungi "spark.dataproc.enhanced.ottimizza.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 "true" nel campo Valore.
  4. 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.

  1. Nella console Google Cloud, apri la pagina Job di Dataproc.
  2. Nella pagina Job, fai clic su Invia job, quindi scorri fino alla sezione Proprietà del job.
    1. Per abilitare i miglioramenti dell'ottimizzazione di Spark:
      1. Fai clic su + AGGIUNGI PROPRIETÀ. Aggiungi "spark.dataproc.enhanced.ottimizzatore.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. 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, 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.

  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: 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 esempio us-central1-a. Se non specifichi una zona, la funzionalità di posizionamento automatico della zona di Dataproc seleziona una zona con la regione specificata.
    • 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+ e 2.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.

  1. 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 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 i miglioramenti dell'ottimizzazione e dell'esecuzione di Spark, specifica:
      spark.dataproc.enhanced.optimizer.enabled=true,spark.dataproc.enhanced.execution.enabled
      

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.

  1. Specifica quanto segue SoftwareConfig.properties come parte di una richiesta clusters.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.

  1. Specifica properties per una richiesta SparkJob, PySparkJob, SparkSqlJob o SparkRJob come parte di una richiesta jobs.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"