如何知道spark脚本是否在shell脚本中成功完成?

时间:2018-05-26 20:02:59

标签: shell apache-spark

我使用shell脚本提交我的spark作业,我想知道我的spark作业是否成功完成。如果spark job成功完成,那么我想对HDFS中的job写入的数据执行一些操作,否则退出shell脚本。

2 个答案:

答案 0 :(得分:1)

使用Spark REST API,您可以获取Submitted Spark应用程序的状态。

Spark文档摘录:

在API中,应用程序通过其应用程序ID [app-id]进行引用。在YARN上运行时,每个应用程序可能会进行多次尝试,但是仅针对集群模式下的应用程序具有尝试ID,而客户端模式下的应用程序没有ID。 YARN群集模式下的应用程序可以通过其[attempt-id]进行标识。在下面列出的API中,以YARN群集模式运行时,[app-id]实际上将是[base-app-id] / [attempt-id],其中[base-app-id]是YARN应用程序ID。 / p>

对于正在运行的应用程序:http://localhost:4040/api/v1 对于历史记录服务器:http://:18080 / api / v1

?status = [active | complete | pending | failed]仅列出处于该状态的阶段。

答案 1 :(得分:0)

如果您通过shell脚本提交,只需通过$?检查命令的状态,然后继续执行后续步骤。

./spark-submit ......

 if [ $? -eq 0 ];then
 #DosomethingHere
 else
 #DoSomethingHere
 fi