Monitora e risolvi i problemi dei carichi di lavoro serverless di Dataproc

Puoi monitorare e risolvere i problemi di Dataproc Serverless per i carichi di lavoro batch di Spark utilizzando le informazioni e gli strumenti illustrati nelle sezioni seguenti.

Server di cronologia permanente

Dataproc Serverless per Spark crea le risorse di calcolo necessarie per eseguire un carico di lavoro, ne esegue il carico su queste risorse e poi elimina le risorse al termine del carico di lavoro. Le metriche e gli eventi del carico di lavoro non vengono mantenuti dopo il completamento del carico di lavoro. Tuttavia, puoi utilizzare un server di cronologia permanente (PHS) per conservare la cronologia delle applicazioni dei carichi di lavoro (log degli eventi) in Cloud Storage.

Per utilizzare un PHS con un carico di lavoro batch:

  1. Crea un server di cronologia permanente (PHS) Dataproc.

  2. Specifica il PHS quando invii un carico di lavoro.

  3. Utilizza il gateway dei componenti per connetterti al PHS e visualizzare i dettagli dell'applicazione, le fasi dello scheduler, i dettagli a livello di attività e le informazioni su ambiente ed esecutore.

Dataproc Serverless per log di Spark

Il logging è abilitato per impostazione predefinita in Dataproc Serverless per Spark e i log dei carichi di lavoro vengono mantenuti al termine di un carico di lavoro. Dataproc Serverless per Spark raccoglie i log dei carichi di lavoro in Cloud Logging. Puoi accedere ai log dei carichi di lavoro spark, agent, output e container nella risorsa Cloud Dataproc Batch in Esplora log.

Esempio di Dataproc Serverless per Spark in modalità batch:

Esempio di selezione in batch in Metrics Explorer.

Per ulteriori informazioni, consulta Log di Dataproc.

Metriche del carico di lavoro

Per impostazione predefinita, Dataproc Serverless per Spark consente la raccolta delle metriche Spark disponibili, a meno che non utilizzi le proprietà di raccolta delle metriche Spark per disattivare o sostituire la raccolta di una o più metriche Spark.

Puoi visualizzare le metriche dei carichi di lavoro dalla pagina Metrics Explorer o dalla pagina Dettagli batch nella console Google Cloud.

Metriche batch

Le metriche delle risorse batch di Dataproc forniscono insight sulle risorse batch, ad esempio il numero di esecutori batch. Le metriche batch sono precedute dal prefisso dataproc.googleapis.com/batch.

Esempio di metrica batch in Metrics Explorer.

Metriche Spark

Le metriche Spark disponibili includono le metriche del driver e degli esecutori Spark e le metriche di sistema. Le metriche Spark disponibili hanno il prefisso custom.googleapis.com/.

Esempio di metrica Spark in Metrics Explorer.

Configura gli avvisi per le metriche

Puoi creare avvisi per le metriche Dataproc per ricevere notifiche sui problemi dei carichi di lavoro.

Creare grafici

Puoi creare grafici che visualizzano le metriche dei carichi di lavoro utilizzando Metrics Explorer nella console Google Cloud. Ad esempio, puoi creare un grafico per visualizzare disk:bytes_used e poi filtrare per batch_id.

Cloud Monitoring

Monitoring usa i metadati e le metriche dei carichi di lavoro per fornire insight su integrità e prestazioni di Dataproc Serverless. Le metriche dei carichi di lavoro includono metriche Spark, metriche batch e metriche operative.

Puoi utilizzare Cloud Monitoring nella console Google Cloud per esplorare metriche, aggiungere grafici, creare dashboard e creare avvisi.

Creare dashboard

Puoi creare una dashboard per monitorare i carichi di lavoro utilizzando metriche di più progetti e diversi prodotti Google Cloud. Per maggiori informazioni, consulta Creare e gestire dashboard personalizzate.

Risoluzione dei problemi avanzata (anteprima)

Questa sezione illustra le funzionalità avanzate di anteprima di risoluzione dei problemi disponibili nella console Google Cloud, tra cui la risoluzione dei problemi per Dataproc Serverless assistita da Gemini, che fa parte dell'offerta Gemini in BigQuery.

Accesso alle funzionalità in anteprima

Per registrarti per la release di anteprima delle funzionalità avanzate per la risoluzione dei problemi, compila e invia il modulo Gemini in BigQuery Preview. Una volta approvato il modulo, i progetti elencati nel modulo avranno accesso alle funzionalità in anteprima.

Anteprima dei prezzi

Non sono previsti costi aggiuntivi per la partecipazione all'anteprima. Gli addebiti verranno applicati alle seguenti funzionalità in anteprima non appena diventeranno disponibili pubblicamente:

Un preavviso sugli addebiti di GA verrà inviato all'indirizzo email fornito nel modulo di registrazione di anteprima.

Requisiti delle funzionalità

  • Registrazione: devi registrarti per la funzionalità.

  • Autorizzazione:devi avere l'autorizzazione dataproc.batches.analyze.

    gcloud iam roles update CUSTOM_ROLE_ID --project=PROJECT_ID \
    --add-permissions="dataproc.batches.analyze"
    
  • Abilita la risoluzione dei problemi assistita da Gemini per Dataproc Serverless: attivi la risoluzione dei problemi assistita da Gemini per Dataproc Serverless quando invii ogni carico di lavoro batch ricorrente di Spark utilizzando la console Google Cloud, gcloud CLI o l'API Dataproc. Dopo aver abilitato questa funzionalità su un carico di lavoro batch ricorrente, Dataproc archivia una copia dei log del carico di lavoro per 30 giorni e utilizza i dati di log salvati per fornire la risoluzione dei problemi del carico di lavoro assistita da Gemini. Per informazioni sui contenuti dei log dei carichi di lavoro Spark, consulta Log Serverless per Spark.

Console

Esegui i passaggi seguenti per abilitare la risoluzione dei problemi assistita da Gemini su ogni carico di lavoro batch Spark ricorrente:

  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 Contenitore, inserisci il nome Coorte, che identifica il batch come uno di una serie di carichi di lavoro ricorrenti. L'analisi basata su Gemini viene applicata al secondo carico di lavoro e a quelli successivi inviati con questo nome coorte. Ad esempio, specifica TPCH-Query1 come nome coorte per un carico di lavoro pianificato che esegue una query TPC-H giornaliera.

  4. Compila le altre sezioni della pagina Crea batch come necessario, quindi fai clic su Invia. Per maggiori informazioni, consulta Inviare un carico di lavoro batch.

gcloud

Esegui il seguente comando gcloud CLI gcloud dataproc batches submit in locale in una finestra del terminale o in Cloud Shell per abilitare la risoluzione dei problemi assistita da Gemini su ogni carico di lavoro batch ricorrente di Spark:

gcloud dataproc batches submit COMMAND \
    --region=REGION \
    --cohort=COHORT \
    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'analisi assistita da Gemini 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.

API

Includi il nome RuntimeConfig.cohort in una richiesta batches.create per abilitare la risoluzione dei problemi assistita da Gemini su ogni carico di lavoro batch ricorrente. L'analisi basata su Gemini 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.

Esempio:

...
runtimeConfig:
  cohort: TPCH-Query1
...

Risoluzione dei problemi assistita da Gemini per Dataproc Serverless

Le seguenti funzionalità di anteprima per la risoluzione dei problemi assistiti da Gemini sono disponibili nelle pagine di elenco Dettagli batch e Batch nella console Google Cloud.

  • Scheda Indaga: la scheda Esamina nella pagina Dettagli batch fornisce una sezione Panoramica dell'integrità (anteprima) con i seguenti riquadri per la risoluzione dei problemi assistiti da Gemini:

    • Cosa è stato ottimizzato automaticamente? Se hai attivato l'ottimizzazione automatica su uno o più carichi di lavoro, questo riquadro mostra le modifiche più recenti dell'ottimizzazione automatica applicate ai carichi di lavoro in esecuzione, completati e non riusciti.

    Riquadro di indagine dell'ottimizzazione automatica.

    • Che cosa sta succedendo ora? e Che cosa posso fare? Fai clic su Chiedi a Gemini per richiedere consigli per correggere i carichi di lavoro non riusciti o migliorare i carichi di lavoro riusciti ma lenti.

    Pulsante Chiedi ai Gemini.

    Se fai clic su Chiedi a Gemini, Gemini genera un riepilogo di eventuali errori, anomalie o evidenziazioni dai log dei carichi di lavoro, dalle metriche Spark e dagli eventi Spark. Gemini può anche visualizzare un elenco di passaggi consigliati che puoi seguire per correggere un carico di lavoro non riuscito o migliorare le prestazioni di un carico di lavoro riuscito ma lento.

    Insight generati da Gemini.

  • Colonne per la risoluzione dei problemi assistite da Gemini: nell'ambito della release di anteprima, la pagina dell'elenco dei Batch di Dataproc nella console Google Cloud include le colonne What was Autotuned, What is happening now? e What can I do about it?.

    I batch elencano le colonne Gemini.

    Il pulsante Chiedi a Gemini viene visualizzato e abilitato solo se un batch completato è in stato Failed,Cancelled o Succeeded. Se fai clic su Chiedi a Gemini, Gemini genera un riepilogo di eventuali errori, anomalie o evidenziazioni dai log dei carichi di lavoro, dalle metriche Spark e dagli eventi Spark. Gemini può anche visualizzare un elenco di passaggi consigliati che puoi seguire per correggere un carico di lavoro non riuscito o migliorare le prestazioni di un carico di lavoro riuscito ma lento.

Evidenziazioni delle metriche batch

Come parte della versione di anteprima, la pagina Dettagli batch nella console Google Cloud include grafici che mostrano valori importanti delle metriche dei carichi di lavoro batch. I grafici delle metriche vengono completati con i valori al termine del batch.

Dashboard delle metriche batch.

Tabella delle metriche

La seguente tabella elenca le metriche del carico di lavoro Spark visualizzate nella pagina Dettagli batch della console Google Cloud e descrive come i valori delle metriche possono fornire insight sullo stato e sulle prestazioni dei carichi di lavoro.

Metrica Cosa indica?
Metriche a livello di esecutore
Rapporto tra tempo GC e runtime JVM Questa metrica mostra il rapporto tra il tempo GC (garbage collection) di JVM e il runtime per esecutore. Rapporti elevati possono indicare perdite di memoria all'interno di attività in esecuzione su particolari esecutori o strutture di dati inefficienti, che possono portare a un elevato tasso di abbandono degli oggetti.
Byte fuori dal disco Questa metrica mostra il numero totale di byte del disco distribuiti tra diversi esecutori. Se un esecutore mostra uno sversamento di byte del disco elevati, questo può indicare un disallineamento dei dati. Se la metrica aumenta nel tempo, ciò può indicare la presenza di fasi con pressione o perdita di memoria.
Byte letti e scritti Questa metrica mostra il numero di byte scritti e di byte letti per esecutore. Grandi discrepanze nei byte letti o scritti possono indicare scenari in cui i join replicati portano all'amplificazione dei dati su esecutori specifici.
Record letti e scritti Questa metrica mostra i record letti e scritti per esecutore. La lettura di record a numeri elevati con un numero basso di record scritti può indicare un collo di bottiglia nella logica di elaborazione su esecutori specifici, che comporta la lettura dei record in attesa. Gli esecutori con un ritardo costante nelle letture e nelle scritture possono indicare un conflitto di risorse su quei nodi o inefficienze di codice specifiche degli esecutori.
Rapporto tra tempo di scrittura shuffling e tempo di esecuzione La metrica mostra la quantità di tempo che l'esecutore ha trascorso nel runtime di shuffling rispetto al runtime complessivo. Se questo valore è elevato per alcuni esecutori, potrebbe indicare un disallineamento dei dati o una serializzazione inefficiente dei dati. Puoi identificare le fasi con lunghi tempi di scrittura shuffling nella UI di Spark. Cercare attività outlier all'interno di queste fasi che richiedono più tempo del tempo medio per essere completate. Controlla se gli esecutori con tempi di scrittura shuffling elevati mostrano anche un'attività di I/O su disco elevata. Una serializzazione più efficiente e passaggi di partizionamento aggiuntivi potrebbero essere utili. Le scritture di record molto grandi rispetto alle letture di record possono indicare una duplicazione involontaria dei dati a causa di join inefficienti o trasformazioni errate.
Metriche a livello di applicazione
Progressione delle fasi Questa metrica mostra il numero di fasi nelle fasi non riuscite, in attesa ed in esecuzione. Un numero elevato di fasi non riuscite o di attesa può indicare un disallineamento dei dati. Verifica la presenza di partizioni di dati ed esegui il debug del motivo dell'errore della fase utilizzando la scheda Fasi nell'interfaccia utente di Spark.
Esecutori Spark batch Questa metrica mostra il numero di esecutori che potrebbero essere necessari rispetto al numero di esecutori in esecuzione. Una grande differenza tra gli esecutori obbligatori ed in esecuzione può indicare problemi di scalabilità automatica.
Metriche a livello di VM
Memoria utilizzata Questa metrica mostra la percentuale di memoria VM in uso. Se la percentuale principale è alta, può indicare che il conducente è sotto pressione. Per altri nodi VM, una percentuale elevata può indicare che gli esecutori stanno esaurendo la memoria, il che può portare a un'elevata perdita di disco e a un tempo di esecuzione del carico di lavoro più lento. Utilizza la UI di Spark per analizzare gli esecutori al fine di verificare se ci sono tempi GC elevati e errori nelle attività elevate. Esegui anche il debug del codice Spark per la memorizzazione nella cache di set di dati di grandi dimensioni e la trasmissione non necessaria di variabili.

Log job

Come parte della release di anteprima, la pagina Dettagli batch nella console Google Cloud elenca i log del job (carico di lavoro batch). I log includono avvisi ed errori filtrati dall'output dei carichi di lavoro e dai log di Spark. Puoi selezionare Gravità dei log, aggiungere un filtro e quindi fare clic sull'icona Visualizza in Esplora log per aprire i log batch selezionati in Esplora log.

Esempio: Esplora log si apre dopo aver scelto Errors dal selettore di gravità nella pagina Dettagli batch nella console Google Cloud.

Esplora log in batch.

UI Spark (anteprima)

Se hai registrato il tuo progetto nella funzionalità di anteprima della UI di Spark, puoi visualizzare la UI di Spark nella console Google Cloud senza dover creare un cluster Dataproc PHS (Server di cronologia permanente). La UI di Spark raccoglie i dettagli dell'esecuzione di Spark dai carichi di lavoro batch. Per ulteriori informazioni, consulta la guida dell'utente distribuita ai clienti registrati come parte della release di anteprima dell'interfaccia utente di Spark.