Im Jobtracker-Web-UI sehe ich diese Spalte "Failed / Killed" Aufgabe versucht ".
Ich würde gerne den Unterschied zwischen ihnen wissen. Ich schätze "Fehlgeschlagene" bedeuten Aufgaben, die nach einigen Wiederholungen wirklich fehlgeschlagen sind (also wurde überhaupt keine Wiederherstellung durchgeführt?), Während "Getötete" Aufgaben bedeuten, die getötet werden (wegen Zeitüberschreitung usw.), aber sie könnten erneut versucht werden?
Es gibt einige Gründe, warum Hadoop Aufgaben durch eigene Entscheidungen beenden kann:
a) Der Task meldet während des Timeouts keinen Fortschritt (Standard ist 10 Minuten)
b) FairScheduler oder CapacityScheduler benötigt den Slot für einen anderen Pool (FairScheduler) oder eine Warteschlange (CapacityScheduler).
c) Die spekulative Ausführung führt dazu, dass die Ergebnisse der Aufgabe nicht benötigt werden, da sie an anderer Stelle abgeschlossen wurden.
Hadoop verwendet "spekulative Ausführung". Die gleiche Aufgabe kann für mehrere Boxen gestartet werden. Der Erste, der das Ziel erreicht, gewinnt und die anderen Kopien werden getötet.
Fehlgeschlagene Aufgaben sind Aufgaben, die fehlgeschlagen sind.
Ich würde David nicht zustimmen, da Timeout-Aufgaben nicht als erledigt, sondern als fehlgeschlagen markiert werden.
Nach meinem Verständnis sind Definitionen für fehlgeschlagene vs. getötete Aufgaben
Die Aufgabe kann aufgrund von
fehlschlagenAufgabe kann wegen
getötet werdenFehlgeschlagene Aufgaben 1. Eine fehlerhafte Map oder reduzierter Code (Laufzeitausnahmefehler) 2. Ein plötzlicher Austritt von jvm 3. Eine hängende Aufgabe (sie kann spekulative Ausführung auslösen, wenn sie aktiviert ist)
Getötete Aufgaben 1. Spekulative Ausführung tötet den lang laufenden Job. 2. Wenn ein Benutzer selbst einen Job tötet. 3. Task Tracker Fehler