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

Puoi monitorare e risolvere i problemi di Dataproc Serverless 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. che esegue il carico di lavoro su queste risorse, quindi le elimina al termine del carico di lavoro. Le metriche e gli eventi del carico di lavoro non vengono mantenuti al termine del carico di lavoro. Tuttavia, puoi utilizzare una Persistent History Server (PHS) per conservare la cronologia delle applicazioni del carico di lavoro (evento) log) in Cloud Storage.

Per utilizzare un PHS con un carico di lavoro batch, segui questi passaggi:

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

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

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

Dataproc serverless per i log Spark

In Dataproc Serverless per Spark è abilitato per impostazione predefinita il logging e i log dei carichi di lavoro vengono mantenuti dopo un del carico di lavoro. Dataproc Serverless per Spark raccoglie i log dei carichi di lavoro in Cloud Logging. Puoi accedere ai log di Dataproc Serverless per Spark in Cloud Dataproc Batch risorsa in Esplora log.

Query serverless di Dataproc per i log Spark

Esplora log della console Google Cloud fornisce un riquadro delle query per aiutarti a creare una query per esaminare i log dei carichi di lavoro batch. Ecco i passaggi che puoi seguire per creare una query ed esaminare il carico di lavoro batch log:

  1. Vai a Esplora log

  2. Il progetto attuale è stato selezionato. Puoi fare clic su Perfeziona progetto ambito per seleziona un altro progetto.
  3. Definisci una query sui log batch.

    • Utilizzare i menu di filtro per filtrare i carichi di lavoro batch.

      1. In Tutte le risorse, seleziona la risorsa Batch Cloud Dataproc.

        1. Nel riquadro Seleziona risorsa, seleziona il batch LOCATION, quindi ID BATCH. Questi parametri batch sono elencati nella Batch Dataproc nella console Google Cloud.

        2. Fai clic su Applica.

        3. In Seleziona nomi log. inserisci dataproc.googleapis.com nella casella Nomi log di ricerca per limitare i tipi di log su cui eseguire query. Seleziona uno o più nomi di file di log elencati.

    • Utilizza l'editor query per filtrare i log specifici della VM.

      1. Specifica il tipo di risorsa e il nome della risorsa VM come mostrato nell'esempio seguente:

        resource.type="cloud_dataproc_batch"
        labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
        
        Note

        • BATCH_UUID: l'UUID batch è elencato nella sezione Dettagli batch nella console Google Cloud, che si apre quando fai clic sull'icona ID batch nella pagina Batch.

        I log batch riportano inoltre l'UUID batch nel nome della risorsa VM. Ecco un esempio tratto da un driver.log batch:

  4. Fai clic su Esegui query.

Dataproc Serverless per tipi di log Spark e query di esempio

Il seguente elenco descrive i diversi tipi di log di Dataproc Serverless fornisce query di esempio di Esplora log per ogni tipo di log.

  1. dataproc.googleapis.com/output: questo file di log contiene l'output del carico di lavoro batch. Dataproc Serverless per Spark invia i flussi di output batch allo spazio dei nomi output, e imposta il nome del file su JOB_ID.driver.log.

    Query di Esplora log di esempio per i log di output:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Foutput"
    

  2. dataproc.googleapis.com/spark: lo spazio dei nomi spark aggrega Spark log per daemon ed esecutori in esecuzione su Dataproc master del cluster e VM worker. Ogni voce di log include un Etichetta dei componenti master, worker o executor da identificare la sorgente log, come segue:

    • executor: log degli esecutori di codici utente. In genere, si tratta di log distribuiti.
    • master: log del master Spark autonomo di gestione delle risorse, che sono simile a YARN di Dataproc su Compute Engine ResourceManager di log.
    • worker: log del worker autonomo Resource Manager di Spark. simili a YARN di Dataproc su Compute Engine NodeManager di log.

    Query di Esplora log di esempio per tutti i log nello spazio dei nomi spark:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
    

    Query di Esplora log di esempio per i log dei componenti autonomi Spark in lo spazio dei nomi spark:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fspark"
    jsonPayload.component="COMPONENT"
    

  3. dataproc.googleapis.com/startup: lo spazio dei nomi startup include lo spazio dei nomi log di avvio batch (cluster). Tutti i log degli script di inizializzazione inclusi. I componenti sono identificati da un'etichetta, ad esempio:

    startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
    
    Query di Esplora log di esempio per i log di avvio dei log su una VM specificata:
    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fstartup"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
    
  4. dataproc.googleapis.com/agent: lo spazio dei nomi agent aggrega Log dell'agente Dataproc. Ogni voce di log include un'etichetta del nome file che identifica la sorgente log.

    Query di Esplora log di esempio per i log degli agenti generati da una VM worker specificata:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fagent"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
    

  5. dataproc.googleapis.com/autoscaler: lo spazio dei nomi autoscaler aggrega Dataproc Serverless per i log del gestore della scalabilità automatica Spark.

    Query di Esplora log di esempio per i log degli agenti generati da una VM worker specificata:

    resource.type="cloud_dataproc_batch"
    resource.labels.location="REGION"
    resource.labels.batch_id="BATCH_ID"
    logName="projects/PROJECT_ID/logs/dataproc.googleapis.com%2Fautoscaler"
    labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCHUUID-wWORKER#"
    

Per ulteriori informazioni, consulta Log di Dataproc.

Audit log di Dataproc serverless

Per informazioni sugli audit log di Dataproc serverless, consulta Log di controllo di Dataproc.

Metriche del carico di lavoro

Per impostazione predefinita, Dataproc Serverless per Spark consente la raccolta metriche Spark disponibili, a meno che non utilizzi Proprietà di raccolta delle metriche di Spark per disabilitare o eseguire l'override della raccolta di una o più metriche Spark.

Puoi visualizzare le metriche del carico di lavoro dal Esplora metriche o il Pagina Dettagli batch nella console Google Cloud.

Metriche batch

Le metriche delle risorse Dataproc batch forniscono insight su risorse batch, come 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

Metriche Spark disponibili che includono le metriche del driver e dell'esecutore Spark, nonché le metriche di sistema. Le metriche Spark disponibili hanno un prefisso con custom.googleapis.com/.

Esempio di metrica Spark in Metrics Explorer.

Configura avvisi relativi alle metriche

Puoi creare avvisi relativi alle metriche Dataproc per ricevere avvisi sui problemi del carico di lavoro.

Creare grafici

Puoi creare grafici che visualizzano le metriche del carico di lavoro utilizzando Esplora metriche in nella console Google Cloud. Ad esempio, puoi crea un grafico per visualizzare disk:bytes_used, poi filtra in base a batch_id.

Cloud Monitoring

Monitoring utilizza i metadati e le metriche del carico di lavoro per fornire insight l'integrità e le prestazioni di Dataproc Serverless per i carichi di lavoro Spark. Le metriche del carico di lavoro includono le metriche Spark, le metriche batch e le metriche per le operazioni.

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

Creazione di dashboard

Puoi creare una dashboard per monitorare i carichi di lavoro utilizzando le metriche di più progetti e vari prodotti Google Cloud. Per ulteriori informazioni, vedi Creare e gestire dashboard personalizzate.

Risoluzione dei problemi avanzata (anteprima)

Questa sezione illustra la risoluzione dei problemi avanzata (Anteprima) che sono disponibili nella console Google Cloud. Queste funzionalità includono Risoluzione dei problemi assistita da Gemini per Dataproc Serverless, che fa parte del Gemini in BigQuery.

Accesso alle funzionalità in anteprima

Per registrarti alla release di anteprima del funzionalità avanzate di risoluzione dei problemi, completa e invia Registrazione pre-GA a Gemini in BigQuery in un modulo di testo. Una volta approvato il modulo, i progetti elencati nel modulo avranno accesso a funzioni in anteprima.

Anteprima dei prezzi

Non sono previsti costi aggiuntivi per la partecipazione all'anteprima. Gli addebiti verranno applicati alle seguenti funzionalità in anteprima quando diventeranno disponibilità generale (GA):

Il preavviso degli addebiti GA verrà inviato all'indirizzo email specificato L'anteprima del modulo di registrazione.

Requisiti delle funzionalità

  • Registrazione: devi registrarti per utilizzare la funzionalità.

  • Autorizzazione: devi disporre dell'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: puoi abilitare Gemini risolvere i problemi relativi a Dataproc Serverless quando invii ogni carico di lavoro batch Spark ricorrente utilizzando Console Google Cloud, gcloud CLI o Dataproc tramite Google Cloud CLI o tramite l'API Compute Engine. Una volta abilitata la 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 assistita da Gemini per il carico di lavoro. Per informazioni sui contenuti dei log dei carichi di lavoro Spark, consulta Dataproc Serverless per i log Spark

Console

Completa i seguenti passaggi 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, compila Nome 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 il nome della coorte. Ad esempio, specifica TPCH-Query1 come nome della coorte per un carico di lavoro pianificato che esegue query TPC-H giornaliera.

  4. Compila le altre sezioni della pagina Crea batch in base alle tue esigenze, quindi fai clic su Invia. Per ulteriori informazioni, vedi Invia un carico di lavoro batch.

gcloud

Esegui la seguente 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 Spark ricorrente:

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

Sostituisci quanto segue:

  • COMMAND: il tipo di carico di lavoro Spark, ad esempio Spark, PySpark, Spark-Sql o Spark-R.
  • REGION: il valore 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 il nome della coorte. Ad esempio, specifica TPCH Query 1 come nome della coorte per un carico di lavoro pianificato che esegue un quotidiano Query TPC-H.

API

Includi RuntimeConfig.cohort in un file batches.create richiesta di abilitare la risoluzione dei problemi assistita da Gemini su ogni Spark ricorrente carico di lavoro batch. L'analisi assistita da Gemini viene applicata al secondo carico di lavoro e a quelli successivi inviati con il nome della coorte. Ad esempio, specifica TPCH-Query1 come nome della coorte per un carico di lavoro pianificato che esegue Query TPC-H.

Esempio:

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

Risoluzione dei problemi assistita da Gemini per Dataproc Serverless

Le seguenti funzionalità di anteprima della risoluzione dei problemi assistita da Gemini sono disponibili nella Pagine che elencano i dettagli batch e Batch nella console Google Cloud.

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

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

    Riquadro di indagine per l'ottimizzazione automatica.

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

    Pulsante Chiedi a Gemini.

    Se fai clic su Chiedi a Gemini, Gemini per Google Cloud genera un riepilogo degli eventuali errori. anomalie o evidenziazioni provenienti da log dei carichi di lavoro, metriche Spark ed eventi Spark. Gemini per Google Cloud può anche mostrare un elenco di passaggi consigliati per correggere un errore carico di lavoro o migliorare le prestazioni di un carico di lavoro riuscito, ma lento.

    Insight generati da Gemini per Google Cloud.

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

    I batch elencano le colonne Gemini.

    Viene visualizzato il pulsante Chiedi a Gemini abilitata solo se un batch completato è in stato Failed, Cancelled o Succeeded. Se fai clic su Chiedi a Gemini, Gemini per Google Cloud Genera un riepilogo di eventuali errori, anomalie o evidenziazioni dai log dei carichi di lavoro, dalle metriche Spark e dagli eventi Spark. Gemini per Google Cloud può anche mostrare un elenco di passaggi consigliati per correggere un errore carico di lavoro o migliorare le prestazioni di un carico di lavoro riuscito, ma lento.

Caratteristiche principali delle metriche batch

Nell'ambito della versione di anteprima, la pagina Dettagli batch della console Google Cloud include grafici che mostrano importanti valori delle metriche dei carichi di lavoro in batch. La metrica i grafici vengono compilati con valori al termine del batch.

Dashboard delle metriche batch.

Tabella delle metriche

La tabella seguente elenca le metriche dei carichi di lavoro Spark visualizzate nella Dettagli batch della console Google Cloud, in cui viene descritta la modalità di misurazione possono fornire insight sullo stato e sulle prestazioni dei carichi di lavoro.

Metrica Che cosa viene visualizzato?
Metriche a livello di esecutore
Rapporto tra tempo di runtime di JVM GC Questa metrica mostra il rapporto tra tempo di GC (garbage collection) JVM e runtime per esecutore. Rapporti elevati possono indicare perdite di memoria all'interno di attività in esecuzione su particolari esecutori o strutture di dati inefficienti, il che può portare a un elevato tasso di abbandono degli oggetti.
Byte disco versati Questa metrica mostra il numero totale di byte del disco distribuiti tra i diversi esecutori. Se un esecutore mostra un numero elevato di byte del disco sversati, ciò può indicare un disallineamento dei dati. Se la metrica aumenta nel tempo, ciò può indicare la presenza di fasi con pressione della memoria o perdite di memoria.
Byte letti e scritti Questa metrica mostra i byte scritti rispetto ai 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. Un numero elevato di record letti con un numero ridotto di record scritti può indicare un collo di bottiglia nella logica di elaborazione su esecutori specifici, che porta alla lettura dei record in attesa. Gli esecutori con un ritardo costante nelle operazioni di lettura e scrittura possono indicare un conflitto di risorse su quei nodi o inefficienze del codice specifiche degli esecutori.
Rapporto tra tempo di scrittura casuale e tempo di esecuzione La metrica mostra la quantità di tempo trascorsa dall'esecutore nel runtime di shuffling rispetto al tempo di esecuzione complessivo. Se questo valore è alto per alcuni esecutori, può indicare un disallineamento dei dati o una serializzazione inefficiente dei dati. Nella UI di Spark puoi identificare le fasi con lunghi tempi di scrittura shuffling. Cerca le attività anomale in queste fasi che richiedono più tempo del tempo medio per il completamento. Controlla se gli esecutori con tempi di scrittura shuffle elevati mostrano anche un'attività di I/O su disco elevata. Una serializzazione più efficiente e ulteriori passaggi di partizionamento potrebbero essere d'aiuto. Scritture di record molto grandi rispetto alle letture dei record possono indicare una duplicazione involontaria di dati a causa di join inefficienti o trasformazioni errate.
Metriche a livello di applicazione
Progressione fasi Questa metrica mostra il numero di fasi nelle fasi non riuscite, in attesa e in esecuzione. Un numero elevato di fasi non riuscite o di attesa può indicare un disallineamento dei dati. Verifica le partizioni dei dati ed esegui il debug del motivo dell'errore della fase utilizzando la scheda Fasi nella UI di Spark.
Esecutori Spark batch Questa metrica mostra il numero di esecutori che potrebbero essere richiesti rispetto di esecutori in esecuzione. Una grande differenza tra 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 master è elevata, è possibile che la memoria del driver sia ridotta. Per altri nodi VM, una percentuale elevata può indicare che gli esecutori stanno esaurendo la memoria, il che può portare a un'elevata fuoriuscita del disco e a un runtime più lento del carico di lavoro. Utilizza l'interfaccia utente di Spark per analizzare gli esecutori e verificare la presenza di tempi di GC elevati e di errori elevati delle attività. Esegui il debug del codice Spark anche per la memorizzazione nella cache di set di dati di grandi dimensioni e la trasmissione non necessaria di variabili.

Log job

Nell'ambito della versione di anteprima, la pagina Dettagli batch della console Google Cloud elenca i log dei job (carichi di lavoro batch). I log includono avvisi ed errori filtrati dall'output dei carichi di lavoro e dai log Spark. Puoi selezionare il log Gravità, aggiungi un filtro e fai clic sull'icona Visualizza in Esplora log. per aprire i log batch selezionati Esplora log.

Esempio: Esplora log si apre dopo aver scelto Errors dalla Gravità selettore nella pagina Dettagli batch della console Google Cloud.

Esplora log batch.

UI Spark (anteprima)

Se hai registrato il tuo progetto nell'anteprima di Spark UI puoi visualizzare la UI di Spark nella console Google Cloud senza dover per creare un Cluster PHS (Persistent History Server) di Dataproc. La UI di Spark raccoglie i dettagli di 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 della UI di Spark.