Posso forzare i miei riduttori (fase di copia) ad iniziare solo quando tutti i mapper sono completati
-
28-10-2019 - |
Domanda
Ho un lavoro Hadoop con una fase di mappa piuttosto lunga e voglio che altri brevi lavori siano eseguiti in priorità. Per questo ho impostato la priorità del mio lungo lavoro con Hadoop Job -set -priorità Job_id Low.
Il problema è che, per il mio lungo lavoro, la fase di copia dei riduttori inizia anche se è completato solo il 30% delle mie attività di mappa.
La mia griglia è quindi in qualche modo soffocata poiché tutte le slot di riduzione sono prese dal lavoro a bassa priorità. Gli altri piccoli lavori possono fare le loro fasi della mappa, ma non otterranno mai alcun riduttore fino a quando il mio lungo lavoro non sarà finito.
Qualche idea? Grazie. J.
Soluzione
Mi sono trovato la risposta alla mia domanda: esiste un parametro di configurazione che fa esattamente il lavoro:
mapred.reduce.slowstart.completed.maps = 0.90
Le attività di riduzione iniziano solo quando il 90% delle mappe è completato. Il valore predefinito è 0,05.