Ottimizzazione automatica dei carichi di lavoro Spark

L'ottimizzazione di prestazioni e resilienza di un carico di lavoro Spark può essere complessa a causa del numero di opzioni di configurazione di Spark e della difficoltà di valutare l'impatto di queste opzioni sul carico di lavoro. L'ottimizzazione automatica di Dataproc Serverless fornisce un'alternativa alla configurazione manuale dei carichi di lavoro applicando automaticamente le impostazioni di configurazione di Spark a un carico di lavoro Spark ricorrente, in base alle best practice di ottimizzazione di Spark e all'analisi delle esecuzioni dei carichi di lavoro.

Registrati per l'ottimizzazione automatica di Dataproc Serverless

Per registrarti per accedere alla release di anteprima di Dataproc Serverless automaticamente descritta in questa pagina, completa e invia il modulo di registrazione di Gemini nell'anteprima di BigQuery. Una volta approvato il modulo, i progetti elencati nel modulo avranno accesso alle funzionalità in anteprima.

Vantaggi

L'ottimizzazione automatica di Dataproc Serverless può fornire i seguenti vantaggi:

  • Prestazioni migliorate: ottimizzazione dell'ottimizzazione per aumentare il rendimento
  • Ottimizzazione più rapida: configurazione automatica per evitare lunghi test di configurazione manuali
  • Maggiore resilienza: allocazione automatica della memoria per evitare errori relativi alla memoria

Limitazioni

L'ottimizzazione automatica di Dataproc Serverless presenta le seguenti limitazioni:

  • L'ottimizzazione automatica viene calcolata e applicata alla seconda esecuzione e alle successive di un carico di lavoro. La prima esecuzione di un carico di lavoro ricorrente non viene ottimizzata automaticamente, perché l'ottimizzazione automatica di Dataproc Serverless utilizza la cronologia dei carichi di lavoro per l'ottimizzazione.
  • Il ridimensionamento della memoria non è supportato.
  • L'ottimizzazione automatica non viene applicata in modo retroattivo ai carichi di lavoro in esecuzione, ma solo alle coorti di carichi di lavoro appena inviate.

Coorti di ottimizzazione automatica

L'ottimizzazione automatica viene applicata alle esecuzioni ricorrenti di un carico di lavoro batch, chiamate coorti. Il nome della coorte specificato quando invii un carico di lavoro lo identifica come una delle esecuzioni successive del carico di lavoro ricorrente. Ti consigliamo di utilizzare nomi delle coorti che descrivano il tipo di carico di lavoro o che aiutino a identificare le esecuzioni di un carico di lavoro come parte di un carico di lavoro ricorrente. Ad esempio, specifica TPCH-Query1 come nome della coorte per un carico di lavoro pianificato che esegue una query TPC-H giornaliera.

Scenari di ottimizzazione automatica

Puoi applicare l'ottimizzazione automatica di Dataproc Serverless al carico di lavoro selezionando uno o più dei seguenti scenari di ottimizzazione automatica:

  • OOM: ottimizza automaticamente l'allocazione della memoria Spark per correggere un carico di lavoro precedentemente non riuscito a causa di un errore di esaurimento della memoria (OOM).
  • MEMORY: ottimizza automaticamente l'allocazione della memoria Spark per prevedere ed evitare potenziali errori di esaurimento della memoria di lavoro.
  • SCALING: impostazioni di configurazione della scalabilità automatica di Spark per l'ottimizzazione automatica.
  • BHJ: regola automaticamente le impostazioni di configurazione di Spark per ottimizzare le prestazioni del join di trasmissione SQL.

Prezzi

L'ottimizzazione automatica di Dataproc Serverless viene offerta durante l'anteprima senza costi aggiuntivi. Si applicano i prezzi standard di Dataproc Serverless.

Disponibilità a livello di area geografica

Puoi utilizzare l'ottimizzazione automatica di Dataproc Serverless con i batch inviati nelle regioni di Compute Engine disponibili.

Utilizzo dell'ottimizzazione automatica di Dataproc Serverless

Puoi abilitare l'ottimizzazione automatica di Dataproc Serverless su un carico di lavoro utilizzando la console Google Cloud, Google Cloud CLI o l'API Dataproc.

Console

Per abilitare l'ottimizzazione automatica di Dataproc Serverless in ogni invio di un carico di lavoro batch ricorrente, segui questi passaggi:

  1. Nella console Google Cloud, vai alla pagina Batch di Dataproc.

    Vai alla pagina Batch di Dataproc

  2. Per creare un carico di lavoro batch, fai clic su Crea.

  3. Nella sezione Container, compila i seguenti campi per il tuo carico di lavoro Spark:

    • Coorte: il nome della coorte, che identifica il batch come uno di una serie di carichi di lavoro ricorrenti. L'ottimizzazione automatica viene applicata al secondo carico di lavoro e a quelli successivi inviati con questo nome coorte. Ad esempio, specifica TPCH-Query1 come nome della coorte per un carico di lavoro pianificato che esegue una query TPC-H giornaliera.
    • Scenari di ottimizzazione automatica: uno o più scenari di ottimizzazione automatica da utilizzare per ottimizzare il carico di lavoro, ad esempio OOM, MEMORY e SCALING. Puoi modificare la selezione dello scenario a ogni invio collettivo della coorte.
  4. Compila le altre sezioni della pagina Crea batch come necessario, quindi fai clic su Invia. Per maggiori informazioni su questi campi, consulta Inviare un carico di lavoro batch.

gcloud

Per abilitare l'ottimizzazione automatica di Dataproc Serverless in ogni invio di un carico di lavoro batch ricorrente, esegui il seguente gcloud CLI di comando gcloud dataproc batches submit localmente in una finestra del terminale o in Cloud Shell.

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    --autotuning-scenarios=SCENARIOS \
    other arguments ...

Sostituisci quanto segue:

  • COMMAND: il tipo di carico di lavoro Spark, come Spark, PySpark, Spark-Sql o Spark-R.
  • REGION: la regione in cui verrà eseguito il carico di lavoro.
  • COHORT: il nome della coorte, che identifica il batch come uno di una serie di carichi di lavoro ricorrenti. L'ottimizzazione automatica viene applicata al secondo carico di lavoro e a quelli successivi inviati con questo nome coorte. Ad esempio, specifica TPCH Query 1 come nome della coorte per un carico di lavoro pianificato che esegue una query TPC-H giornaliera.
  • SCENARIOS: uno o più scenari di ottimizzazione automatica separati da virgole da utilizzare per ottimizzare il carico di lavoro, ad esempio --autotuning-scenarios=OOM,MEMORY,SCALING. Puoi modificare l'elenco degli scenari con ogni invio collettivo di coorte.

API

Per abilitare l'ottimizzazione automatica di Dataproc Serverless in ogni invio di un carico di lavoro batch ricorrente, invia una richiesta batches.create che includa i seguenti campi:

  • RuntimeConfig.cohort: il nome della coorte, che identifica il batch come parte di una serie di carichi di lavoro ricorrenti. L'ottimizzazione automatica viene applicata al secondo carico di lavoro e a quelli successivi inviati con questo nome coorte. Ad esempio, specifica TPCH-Query1 come nome della coorte per un carico di lavoro pianificato che esegue una query TPC-H giornaliera.
  • AutotuningConfig.scenarios: uno o più scenari di ottimizzazione automatica da utilizzare per ottimizzare il carico di lavoro, ad esempio OOM, MEMORY e SCALING. Puoi modificare l'elenco degli scenari con ogni invio collettivo di coorte.

Esempio:

...
runtimeConfig:
  cohort: TPCH-Query1
  autotuningConfig:
    scenarios:
    - OOM
    - MEMORY
    - SCALING
...

Visualizza le modifiche all'ottimizzazione automatica

Per visualizzare le modifiche dell'ottimizzazione automatica di Dataproc Serverless in un carico di lavoro batch, esegui il comando gcloud dataproc batches describe.

Esempio: l'output di gcloud dataproc batches describe è simile al seguente:

...
runtimeInfo:
   propertiesInfo:
    # Properties set by autotuning.
    autotuningProperties
      spark.driver.memory:
        annotation: Driver OOM was detected
        value: 11520m
      spark.driver.memoryOverhead:
        annotation: Driver OOM was detected
        value: 4608m
    # Old overwritten properties.
    userProperties
...

Puoi anche visualizzare le modifiche più recenti dell'ottimizzazione automatica applicate a un carico di lavoro in esecuzione, completato o non riuscito nella pagina Dettagli batch nella console Google Cloud, nella scheda Esamina.

Riquadro di indagine dell'ottimizzazione automatica.