Miglioramenti delle prestazioni di Dataproc Spark

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.

  1. Nella console Google Cloud, apri la pagina 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, quindi scorri fino alla 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 attivare 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 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.

  1. Nella console Google Cloud, apri la pagina Job di Dataproc.
  2. Nella pagina Job, fai clic su Invia job e poi 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.enhanced.optimizer.enabled" nel campo Key e "true" nel campo Value.
    2. Per attivare 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 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.

  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 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 esempio us-central1-a. Se non specifichi una zona, la funzionalità di posizionamento in zona automatica di Dataproc seleziona una zona con la regione specificata.
    • IMAGE: i miglioramenti delle prestazioni di esecuzione e dell'ottimizzatore di Dataproc Spark sono disponibili nelle versioni immagine di Dataproc 2.0.69+ e 2.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.

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

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.

  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 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.

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