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:
Specifica il tuo PHS quando invii un carico di lavoro.
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:
- Il progetto attuale è stato selezionato. Puoi fare clic su Perfeziona progetto ambito per seleziona un altro progetto.
Definisci una query sui log batch.
Utilizzare i menu di filtro per filtrare i carichi di lavoro batch.
In Tutte le risorse, seleziona la risorsa Batch Cloud Dataproc.
Nel riquadro Seleziona risorsa, seleziona il batch LOCATION, quindi ID BATCH. Questi parametri batch sono elencati nella Batch Dataproc nella console Google Cloud.
Fai clic su Applica.
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.
Specifica il tipo di risorsa e il nome della risorsa VM come mostrato nell'esempio seguente:
Noteresource.type="cloud_dataproc_batch" labels."dataproc.googleapis.com/resource_name"="gdpic-srvls-batch-BATCH_UUID-VM_SUFFIX"
- 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:
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.
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 nomioutput
, e imposta il nome del file suJOB_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"
dataproc.googleapis.com/spark
: lo spazio dei nomispark
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 componentimaster
,worker
oexecutor
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 EngineResourceManager
di log.worker
: log del worker autonomo Resource Manager di Spark. simili a YARN di Dataproc su Compute EngineNodeManager
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"
dataproc.googleapis.com/startup
: lo spazio dei nomistartup
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: Query di Esplora log di esempio per i log di avvio dei log su una VM specificata:startup-script[855]: ... activate-component-spark[3050]: ... enable spark-worker
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"
dataproc.googleapis.com/agent
: lo spazio dei nomiagent
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#"
dataproc.googleapis.com/autoscaler
: lo spazio dei nomiautoscaler
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
.
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/
.
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):
- Risoluzione dei problemi assistita da Gemini per Dataproc Serverless
- Informazioni importanti sulle metriche batch
- Log dei job
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
.Se disponi dei valori predefiniti
roles/dataproc.admin
,roles/dataproc.editor
oroles/dataproc.viewer
devi disporre dell'autorizzazione richiesta. Non sono necessari ulteriori interventi.Se utilizzi un ruolo personalizzato per accedere ai servizi Dataproc, il ruolo personalizzato deve avere l'autorizzazione
dataproc.batches.analyze
. Puoi utilizza gcloud CLI per aggiungere l'autorizzazione, come mostrato nel seguente comando, che aggiunge l'autorizzazione A livello di progetto:
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:
Nella console Google Cloud, vai alla pagina Batch di Dataproc.
Per creare un carico di lavoro batch, fai clic su Crea.
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.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
oSpark-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.
- 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.
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.
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?
, eWhat can I do about it?
colonne.Viene visualizzato il pulsante Chiedi a Gemini abilitata solo se un batch completato è in stato
Failed
,Cancelled
oSucceeded
. 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.
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.
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.