首页 > 解决方案 > 如何在 shell 脚本中知道 spark 作业是否成功完成?

问题描述

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

标签: shellapache-spark

解决方案


使用 Spark REST API,您可以获得提交的 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。

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

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


推荐阅读