2016-05-26 16 views
6

Ultimamente ho regolato le prestazioni di alcuni grandi lavori di shuffle pesanti. Guardando l'interfaccia utente di spark, ho notato un'opzione chiamata "Shuffle Read Blocked Time" nella sezione delle metriche aggiuntive.Spark - Shuffle Read Blocked Time

Questo "Tempo di lettura shuffle bloccato" sembra rappresentare fino al 50% della durata dell'attività per una grande quantità di attività.

Mentre sono in grado di intuire alcune possibilità per ciò che significa, non riesco a trovare alcuna documentazione che spieghi cosa rappresenta effettivamente. Inutile dire che non sono stato in grado di trovare risorse sulle strategie di mitigazione.

Qualcuno può fornire alcune informazioni su come ridurre il tempo di lettura shuffle bloccato?

risposta

1

"Shuffle Read Blocked Time" è il tempo in cui le attività spese bloccate in attesa di dati shuffle da leggere da macchine remote. La metrica esatta da cui proviene è shuffleReadMetrics.fetchWaitTime.

Difficile dare l'input in una strategia per mitigarlo senza realmente sapere quali dati stai cercando di leggere o che tipo di macchine remote stai leggendo. Tuttavia, considerare quanto segue:

  1. Controllare la connessione alle macchine remote da cui si stanno leggendo i dati.
  2. Controlla il tuo codice/i tuoi lavori per assicurarti di leggere solo i dati che devi assolutamente leggere per completare il tuo lavoro.
  3. In alcuni casi, è possibile considerare la suddivisione del lavoro in più lavori eseguiti in parallelo, a condizione che siano indipendenti l'uno dall'altro.
  4. Forse potresti aggiornare il tuo cluster per avere più nodi in modo da poter dividere il carico di lavoro in modo da essere più granulare e avere quindi un tempo di attesa complessivo inferiore.

Per quanto riguarda le metriche, questa documentazione dovrebbe far luce su di loro: https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-webui-StagePage.html

Infine, ho fatto anche fatica a trovare informazioni su Shuffle Leggi Bloccato tempo, ma se si mette tra virgolette come: "Shuffle Read Blocked Time" in una ricerca su google, troverai risultati decenti.