I/O elevato della fase Spark
Esaminare quindi di nuovo le statistiche di I/O della fase più lunga:
Che cos'è l'I/O elevato?
Quanti dati devono trovarsi in una colonna di I/O da considerare elevati? Per capire questo problema, iniziare prima con il numero più alto in una delle colonne specificate. Prendere quindi in considerazione il numero totale di core CPU disponibili in tutti i ruoli di lavoro. In genere ogni core può leggere e scrivere circa 3 MB al secondo.
Dividere la colonna di I/O più grande in base al numero di core del ruolo di lavoro del cluster, quindi dividere tale colonna in base alla durata dei secondi. Se il risultato è di circa 3 MB, è probabile che l'I/O sia associato. Sarebbe un'I/O elevata.
Input elevato
Se viene visualizzato un sacco di input nella fase, ciò significa che si spende molto tempo per leggere i dati. Identificare prima di tutto i dati letti da questa fase. Vedere Identificazione di una lettura costosa nel DAG di Spark.
Dopo aver identificato i dati specifici, ecco alcuni approcci per velocizzare le letture:
- Usare Delta.
- Prova Photon. Può essere utile molto con la velocità di lettura, soprattutto per le tabelle estese.
- Rendere la query più selettiva in modo che non sia necessario leggere la quantità di dati.
- Riconsiderare il layout dei dati in modo che il datapping sia più efficace.
- Se si stanno leggendo più volte gli stessi dati, usare la cache Delta.
- Se stai eseguendo un join, prova a lavorare con DFP .
Output elevato
Se viene visualizzato un sacco di output dalla fase, significa che si spende molto tempo per scrivere dati. Ecco alcuni approcci per risolvere questo problema:
- Si riscrive un sacco di dati? Vedere Come determinare se Spark sta riscrivendo i dati da controllare. Se si riscrive un sacco di dati:
- Verificare se si dispone di un'unione che deve essere ottimizzata.
- Usare vettori di eliminazione per contrassegnare le righe esistenti come rimosse o modificate senza riscrivere il file Parquet.
- Abilitare Photon se non lo è già. Photon può aiutare molto con la velocità di scrittura.
Shuffle elevato
Se non si ha familiarità con lo shuffle, questo è il momento di imparare.
Nessun I/O elevato
Se le operazioni di I/O elevate non vengono visualizzate in alcuna delle colonne, è necessario approfondire. Vedere Fase Spark lenta con poco I/O.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per