Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come usare il server cronologia Apache Spark esteso per il debug e la diagnosi delle applicazioni Spark completate e in esecuzione.
Accedere al server della cronologia di Apache Spark
Il server cronologia Apache Spark è l'interfaccia utente Web per le applicazioni Spark, sia completate che in esecuzione. È possibile aprire l'interfaccia utente Web di Apache Spark dal notebook dell'indicatore di stato o dalla pagina dei dettagli dell'applicazione Apache Spark.
Aprire l'interfaccia utente Web di Spark dal notebook dell'indicatore di stato
Quando viene avviato un processo di Apache Spark, il pulsante per aprire l'interfaccia utente Web Spark si trova nell'opzione Altre azioni nell'indicatore di stato. Selezionare Interfaccia utente Web di Spark e attendere alcuni secondi, quindi viene visualizzata la pagina dell'interfaccia utente di Spark.
Aprire l'interfaccia web di Spark dalla pagina dei dettagli dell'applicazione Apache Spark
L'interfaccia utente Web di Spark può essere aperta anche tramite la pagina dei dettagli dell'applicazione Apache Spark. Selezionare Monitoraggio sul lato sinistro della pagina e quindi selezionare un'applicazione Apache Spark. Viene visualizzata la pagina dei dettagli dell'app.
Per un'applicazione Apache Spark il cui stato è in esecuzione, il pulsante mostra Interfaccia utente di Spark. Selezionando Interfaccia utente di Spark viene visualizzata la pagina Interfaccia utente di Spark.
Per un'applicazione Apache Spark il cui stato è terminato, tale stato terminato può essere Arrestato, Non riuscito, Annullato o Completato. Il pulsante mostra il server cronologia di Spark. Selezionare Server di cronologia di Spark e viene visualizzata la pagina dell'interfaccia utente di Spark.
Caricamento basato su snapshot per registri eventi di grandi dimensioni
È stato introdotto un nuovo metodo di caricamento basato su snapshot per il server cronologia Spark, ottimizzato per scenari di log eventi di grandi dimensioni.
Con questo miglioramento, l'interfaccia utente di Spark rivela progressivamente i dati disponibili invece di attendere il completamento della riproduzione completa. Quando le dimensioni del registro eventi sono di 6 GB o superiori, viene visualizzato un messaggio di caricamento per indicare che potrebbe essere necessario un tempo di caricamento aggiuntivo (in genere alcuni minuti).
Non appena è disponibile uno snapshot parziale, l'interfaccia utente esegue il rendering usando tali dati. Una barra dei messaggi nella parte superiore indica che i dati vengono ancora elaborati in background. Al termine della riproduzione completa, la barra dei messaggi viene rimossa automaticamente e viene visualizzata la visualizzazione completa.
Con questa esperienza, è possibile:
- Visualizzare un messaggio di caricamento chiaro per i registri eventi di grandi dimensioni (≥ 6 GB), in modo da sapere che il sistema sta elaborando attivamente anziché non rispondere
- Consulta fin da subito un'istantanea parziale tramite un banner di anteprima chiaramente contrassegnato, così da poter analizzare i processi e le fasi senza attendere il replay completo
- Aggiornare la pagina in un secondo momento per caricare il set di dati completo al termine dell'elaborazione
Quando i dati della cronologia Spark vengono caricati completamente, la barra dei messaggi di caricamento parziale scompare e l'esperienza completa è disponibile.
Esplora il server della cronologia di Apache Spark
Il server cronologia Apache Spark fornisce un'interfaccia utente basata sul Web che ricostruisce i dettagli di esecuzione dell'applicazione Spark dai registri eventi. Consente agli utenti di analizzare le applicazioni completate o in esecuzione oltre il ciclo di vita del runtime.
L'interfaccia utente del server cronologia è costituita da più schede, ognuna delle quali offre una prospettiva diversa per comprendere il comportamento dell'applicazione, le prestazioni e l'utilizzo delle risorse.
Lavori
La scheda Processi offre una panoramica generale di tutti i processi all'interno di un'applicazione Spark.
È possibile usare questa visualizzazione per:
- Monitorare lo stato del processo (in esecuzione, riuscito o non riuscito)
- Confronta le durate dei processi
- Identificare rapidamente i processi non riusciti o a esecuzione lenta
Scheda Fasi
La scheda Fasi mostra informazioni dettagliate sull'esecuzione per ogni fase.
È possibile usare questa visualizzazione per:
- Analizzare le prestazioni a livello di fase
- Rivedi la distribuzione delle attività e le metriche di shuffle
- Identificare colli di bottiglia, ad esempio dati sbilanciati o operazioni costose
Limite del numero di fase
Per considerazioni sulle prestazioni, per impostazione predefinita il grafico è disponibile solo quando l'applicazione Spark ha meno di 500 fasi. Se ci sono troppe fasi, si verificherà un errore simile al seguente:
The number of stages in this application exceeds limit (500), graph page is disabled in this case.
Come soluzione alternativa, prima di avviare un'applicazione Spark, applicare la configurazione Spark seguente per aumentare il limite:
spark.ui.enhancement.maxGraphStages 1000
Si noti tuttavia che ciò può comportare prestazioni non ottimali della pagina e dell'API, perché le dimensioni del contenuto possono essere eccessive per il recupero e il rendering del browser.
Scheda Archiviazione
La scheda Archiviazione mostra informazioni sui dati memorizzati nella cache.
È possibile usare questa visualizzazione per:
- Informazioni sull'utilizzo della memoria e del disco per i set di dati memorizzati nella cache
- Verificare se la memorizzazione nella cache è efficace
Scheda Ambiente
Nella scheda Ambiente sono elencati i dettagli di configurazione del runtime e dell'ambiente.
È possibile usare questa visualizzazione per:
- Esaminare le impostazioni di configurazione di Spark
- Verificare le variabili di ambiente e le dipendenze
- Risolvere i problemi relativi alla configurazione
Scheda Esecutori
Nella scheda Executors viene visualizzato l'utilizzo delle risorse tra executor.
È possibile usare questa visualizzazione per:
- Monitorare l'utilizzo di CPU e memoria
- Analizzare la distribuzione delle attività tra esecutori
- Identificare i guasti o gli squilibri dell'esecutore
Scheda Grafico
La scheda Grafico visualizza l'esecuzione di un processo Spark come grafico aciclico diretto (DAG), che rappresenta le relazioni tra le fasi.
È possibile usare questa visualizzazione per:
- Comprendere in che modo un processo viene suddiviso in fasi e le relative dipendenze
- Identificare i percorsi critici che determinano la durata complessiva del processo
- Rilevare le fasi non riuscite o ritentate
- Rieseguire l'esecuzione del processo per osservare l'avanzamento delle attività nel tempo
Questa scheda è particolarmente utile per comprendere il flusso di esecuzione e identificare i colli di bottiglia delle prestazioni a livello generale.
Scheda Diagnosi
La scheda Diagnosi offre funzionalità di analisi avanzate, tra cui:
- Rilevamento dell'asimmetria dei dati
- Analisi dell'asimmetria temporale
- Analisi dell'utilizzo dell'executor
Esaminare i valori di Asimmetria dei dati, Sfasamento dell'ora e Analisi dell'utilizzo dell'executor selezionando le rispettive schede.
Questa scheda consente di identificare colli di bottiglia nelle prestazioni e inefficienze nell'esecuzione del job.
Asimmetria dei dati
Quando si seleziona la scheda Asimmetria dei dati, sono visualizzate le attività asimmetriche corrispondenti in base ai parametri specificati.
Specificare i parametri: la prima sezione visualizza i parametri usati per rilevare Asimmetria dei dati. La regola predefinita è: i dati dell'attività letti rappresentano il triplo della media dei dati dell'attività letti e i dati dell'attività letti sono superiori a 10 MB. Se si desidera definire una regola personalizzata per le attività asimmetriche, è possibile scegliere i parametri. Le sezioni Fase asimmetrica e Carattere asimmetrico vengono aggiornate di conseguenza.
Fase asimmetrica: la seconda sezione visualizza le fasi che hanno attività asimmetriche che soddisfano i criteri specificati precedentemente. Se in una fase è presente più di un'attività asimmetrica, nella tabella delle fasi asimmetriche viene visualizzata soltanto l'attività con più asimmetria, ad esempio, i dati di dimensioni maggiori per l'asimmetria dei dati.
Grafico asimmetrie: quando viene selezionata una riga nella tabella delle fasi asimmetriche, il grafico delle asimmetrie visualizza più dettagli delle distribuzioni delle attività in base ai dati letti e al tempo di esecuzione. Le attività asimmetriche sono contrassegnate in rosso e le attività normali sono contrassegnate in blu. Il grafico visualizza fino a 100 attività di esempio e i dettagli dell'attività vengono visualizzati nel pannello inferiore destro.
Disallineamento Temporale
La scheda Sfasamento temporale visualizza le attività distorte in base al tempo di esecuzione.
Specificare i parametri: la prima sezione visualizza i parametri, che vengono usati per rilevare l'asimmetria dell'ora. I criteri predefiniti per il rilevamento dello sfasamento dell'ora sono: il tempo di esecuzione dell'attività è maggiore di tre volte rispetto al tempo medio di esecuzione e il tempo di esecuzione dell'attività è maggiore di 30 secondi. È possibile modificare i parametri in base alle esigenze. La Stage Skewed e il Grafico Skew visualizzano le informazioni sulle fasi e sulle attività corrispondenti, proprio come la scheda Data Skew descritta precedentemente.
Selezionando Asimmetria dell'ora i risultati filtrati verranno visualizzati nella sezione Fase asimmetrica in base ai parametri impostati nella sezione Specificare i parametri. Selezionando un elemento nella sezione Fase asimmetrica verrà realizzata una bozza del grafico corrispondente nella sezione 3 e i dettagli delle attività vengono visualizzati nel pannello inferiore destro.
Analisi dell'utilizzo dell'executor
Ora, questa funzionalità è stata deprecata in Fabric. Se si vuole comunque usarla come soluzione alternativa, accedere alla pagina aggiungendo in modo esplicito "/executorusage" dietro il percorso "/diagnostic" nell'URL, come riportato di seguito:
Scheda SQL/DataFrame
Per i carichi di lavoro che usano Spark SQL , la scheda SQL fornisce informazioni dettagliate a livello di query.
È possibile usare questa visualizzazione per:
- Analizzare i piani di esecuzione delle query
- Esaminare la durata e le prestazioni delle query
Nota
La disponibilità di alcune schede dipende dal tipo di carico di lavoro e dalle funzionalità Spark abilitate.
Log rotativi dell'executor Spark: accesso più semplice per carichi di lavoro grandi e lunghi
Man mano che le applicazioni Spark continuano a crescere in scala e durata, la gestione e l'analisi dei log efficienti sono diventate sempre più critiche. Per soddisfare queste esigenze in continua evoluzione, sono stati introdotti miglioramenti al server cronologia Spark (per le applicazioni completate) e all'interfaccia utente spark (per le applicazioni in esecuzione), abilitando i log in sequenza dell'executor per Spark 3.4 e versioni successive.
Con questo miglioramento, quando un log dell'executor supera i 16 MB o il processo Spark viene eseguito per più di un'ora, il sistema suddivide automaticamente i log in segmenti orari. In questo modo è più semplice spostarsi, visualizzare e scaricare i log senza gestire file di dimensioni estremamente grandi.
È ora possibile:
- Visualizzare i log per ora per individuare rapidamente finestre di esecuzione specifiche
- Accedere ai log attivi più recenti mentre il processo è ancora in esecuzione.
- Scaricare i singoli log orari o tutti i log in base alle esigenze
Questa funzionalità consente agli utenti di individuare e analizzare i log da un particolare punto di tempo con facilità, evitando il problema di scaricare o aprire un unico file di log di grandi dimensioni.
Di seguito è riportato un esempio della visualizzazione dei Log di scorrimento dell'Executor.