Ich habe einen MapReduce-Job, den ich mit job.waitForCompletion(true)
ausführen. Wenn ein oder mehrere Reducer-Tasks während der Ausführung des Jobs beendet werden oder abstürzen, wird der gesamte MapReduce-Job neu gestartet und Mapper und Reducer erneut ausgeführt (Dokumentation). Hier sind meine Fragen:Wie kann man wissen, ob ein MapReduce-Job neu gestartet wurde oder neu gestartet wurde?
1] Können wir zu Beginn des Jobs wissen, ob der Job neu gestartet wurde oder aufgrund eines Fehlers im vorherigen Lauf neu gestartet wurde? (Dies führte mich zu Q2)
2] Können Zähler helfen? Wird der Wert von Zählern übernommen, wenn einige Tasks fehlschlagen, was zum Neustart des gesamten Jobs führt?
3] Gibt es eine eingebaute Checkpointing-Methode, die von Hadoop zur Verfügung gestellt wird, die frühere Berechnungen verfolgt und dabei hilft, die gleichen Berechnungen durchzuführen, die von Mappern und Reducern durchgeführt wurden, bevor sie fehlschlagen/abstürzen?
Entschuldigung, wenn die Fragen nicht unklar formuliert sind. Danke für die Hilfe.
Hallo Yurgis, danke für die Klarstellung! – avp