我有一个 hadoop map-reduce 作业作为 Oozie 工作流程中的一个步骤运行。它是使用实现 org.apache.hadoop.util.Tool 的 java 动作开始的。
当作业因某种原因被终止时,如果在处理过程中出现异常,我希望能够通过电子邮件发送通知,该通知应包含堆栈跟踪。
目前我这样做:
<action name="sendErrorNotifications">
<email xmlns="uri:oozie:email-action:0.1">
<to>some-dl@company.com</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>
但我收到的只是:
Job execution failed, error message: [Job failed!]
这不是很有用:) 我需要自己去检查所有节点的日志。
如何获得更具体的消息?我应该捕获我的异常并包装到工具中的一些 oozie-catchable 中,还是只使用某些东西而不是 ${wf:errorMessage...
谢谢