I have a hadoop map-reduce job running as a step in Oozie workflow. It is started using java action which implements org.apache.hadoop.util.Tool.
When the job is being killed for some reason I want to be able to email a notification which should contain the stacktrace if there was an exception during processing.
Currently I do it this way:
<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>
But all I receive is just:
Job execution failed, error message: [Job failed!]
Which is not very useful :) and I need to go and check all the nodes' logs by myself.
How can I get more specific messages? Should I catch my exceptions and wrap into some oozie-catchable one in the Tool, or just use something instead of ${wf:errorMessage...
Thanks
To check the workflow job status via the Oozie web console, with a browser go to http://localhost:11000/oozie .
Oozie workflows can be parameterized. The parameters come from a configuration file called as property file. We can run multiple jobs using the same workflow by using multiple . property files.
One suggestion is to catch the exception in your main method, and export a property ('exceptionTrace' for example) with the exception serialized into its value (combined with the capture-output flag), which you can then reference using the wf:actionData('myJavaAction')['exceptionTrace']
EL function.
http://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#a3.2.7_Java_Action
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With