Ich habe einen Hadoop Map-Reduce-Job als ein Schritt in Oozie Workflow ausgeführt. Es wird mit der Java-Aktion gestartet, die org.apache.hadoop.util.Tool implementiert.Wie bekomme ich spezifischeren Fehler Informationen über Job in Oozie
Wenn der Job aus irgendeinem Grund abgebrochen wird, möchte ich in der Lage sein, eine Benachrichtigung per E-Mail zu senden, die den StackTrace enthalten sollte, wenn während der Verarbeitung eine Ausnahme aufgetreten ist.
Zur Zeit mache ich es so:
<action name="sendErrorNotifications">
<email xmlns="uri:oozie:email-action:0.1">
<to>[email protected]</to>
<subject>Job execution failed ${wf:id()}</subject>
<body>Job execution failed, error message: [${wf:errorMessage(wf:lastErrorNode())}]</body>
</email>
<ok to="fail" />
<error to="fail" />
</action>
Aber alles, was ich bekommen ist nur:
Job execution failed, error message: [Job failed!]
, die nicht sehr nützlich :) ist und ich brauche, um alle Knoten zu gehen und überprüfen Loggen von mir selbst.
Wie kann ich spezifischere Nachrichten erhalten? Soll ich meine Ausnahmen fangen und wickeln in eine Oozie-abfangbare ein im Werkzeug, oder einfach nur etwas anstelle von $ {wf: errormessage ...
Dank
Das Problem ist, dass es im Tool nicht möglich ist, eine Ausnahme zu erfassen, die beispielsweise in Reducer aufgetreten ist. Alles, was wir dort haben, ist ein Job-Status, so dass wir nun wissen, dass etwas schief gelaufen ist ... Ich werde die Lösung anbieten, die ich als mögliche Antwort verwende. – Art