2012-01-16 6 views
6

Ho un lavoro hadoop con una fase di mappa piuttosto lunga e voglio che altri lavori corti vengano eseguiti in priorità. Per questo ho impostato la priorità del mio lavoro lungo con hadoop job -set-priority job_id LOW.Posso forzare i miei riduttori (fase di copia) ad avviarsi solo quando tutti i mappatori sono completati

Il problema è che, per il mio lungo lavoro, la fase di copia dei riduttori inizia anche se è completato solo il 30% delle attività della mia mappa.

La mia griglia è quindi un po 'gonfiata dato che tutti gli slot di riduzione sono occupati dal lavoro con priorità BASSA. Gli altri piccoli lavori possono fare le loro fasi di mappa ma non otterranno mai alcun riduttore finché il mio lungo lavoro non sarà terminato.

Qualche idea? Grazie. J.

risposta

9

mi sono trovato la risposta alla mia domanda: c'è un parametro di lavoro conf che fa esattamente il lavoro:

mapred.reduce.slowstart.completed.maps = 0.90

le attività di riduzione iniziano solo quando viene completato il 90% delle mappe. Il valore predefinito è 0,05.

Problemi correlati