Spark Job状态记录

时间:2018-09-27 18:11:39

标签: scala apache-spark

我们有一个用Scala编写的Spark代码,其中唯一的动作是将数据保存回Cassandra。另外,我们想在另一个表中记录操作的开始时间,结束时间和状态以进行跟踪。为此,需要进行错误处理。执行动作后,如何在另一个表中记录错误消息?例如,运行成功,则状态为成功,如果失败,则状态为失败,并在另一栏中显示错误消息。

寻求帮助。

1 个答案:

答案 0 :(得分:0)

Oozie,了解工作失败/成功的最终状态

您可以使用Oozie安排此Spark作业。 它将使用作业状态成功或失败,并将其作为参数传递给工作流程的下一步。 Oozie工作流程的第二步可能是更新数据库的最终状态。

其他捕获异常的方法

在处理操作中捕获任何/第一个异常-在驱动程序上使用try-catch -将保存操作放入try-catch块中。

here中介绍了这种方法 特别是“异步执行和异常处理”部分对此进行了介绍。

如果您想捕获数据框中每一行发生的所有异常,则需要使用诸如累加器或Scala Try 之类的方法来收集所有异常例外,以后再汇总。 更多详细信息here

任务/阶段/作业进度使用SparkListeners

进度可以从此作业内部进行更新,没有相关代码,因此无法建议确切的放置位置。

选中Spark Listeners,以获取作业执行各个部分的开始和停止时间,并使用它们来更新数据库中的进度。

关于, 卢卡斯