如何在 oozie 中处理 Spark 动作时由于捕获到错误而未导致错误的火花动作

问题描述

我有一个包含 try/catch/finally 块的 Spark 应用程序。在 finally 块中,我正在写入审计表。

main{
 try {}

 catch {}

 finally {
  write to audit table
  sparkSession.close()
 }

}  

因此,当应用程序抛出异常并在 catch 块中成功捕获时,应用程序不会出错,而是简单地写入审计表并关闭 spark 会话。因此,存在这样一种情况,即应用程序将在没有实际完成任务的情况下完成,而当错误被成功捕获时就会发生这种情况。

我正在尝试将此应用程序包含在 oozie 工作流内的 spark 操作中,并具有相关操作。仅当前面的应用程序成功完成时,相关操作才应运行。所以我的问题是这里最好的方法是什么?

我的第一个想法是为 spark 应用程序提供一个非零状态代码,以防捕获错误,但我想知道这是要走的路,还是有更好的方法来处理这个特定于 oozie 的问题。

一个更普遍的问题是 oozie 如何“知道”某个操作导致错误/成功?

谢谢, _SD

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)