【发布时间】:2016-05-05 09:46:47
【问题描述】:
我在 Oozie 上运行了一个 java 操作。如果此 java 操作失败,我想获得完整的 Java 异常。 Java 操作只使用一个 jar 文件。这是java操作
<workflow-app name='proj-wf' xmlns="uri:oozie:workflow:0.2">
<start to='startIndex'/>
<action name='startIndex'>
<java>
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<prepare>
</prepare>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<main-class>com.myproj.MyDriverJob</main-class>
<arg>-Dlww.commit.on.close=true</arg>
<capture-output/>
</java>
<ok to='end'/>
<error to='end'/>
</action>
<kill name='kill'>
<message>Java failed, error message[${wf:errorMessage(wf:lastErrorNode())}] </message>
</kill>
<end name='end'/>
</workflow-app>
它如何发回我的 java 类中发生的错误。 我正在寻找一种将异常堆栈跟踪发送回我的服务器的方法。
【问题讨论】:
-
您可以简单地查看 hadoop 日志文件以查看异常堆栈跟踪。
-
@Asankasanjaya 更新了问题。我正在寻找一种将异常堆栈跟踪发送回我的服务器的方法。
-
"my server" 到底是什么意思> 你的意思是添加到 Oozie 作业日志(不可行的 AFAIK),或者向某些自定义监控应用程序发送警报 w / 堆栈作为有效负载(YARN AFAIK 不可行)?
-
请记住,Oozie 将您的工作提交给外部分布式系统 (YARN);然后它只是不时地轮询 YARN 以获取状态。不是细节。
-
如果您是勇敢者之一,您可以从 Oozie 检索 YARN 作业 ID(参见 oozie.apache.org/docs/4.1.0/…,但要注意旧版
job_与较新的application_前缀不匹配)并构建一些自定义代码,使用其 REST API 从 YARN 请求日志详细信息、解析它、将其发送到某处等。
标签: java oozie oozie-coordinator