运行spark作业并通过脚本获取作业ID

时间:2015-12-02 06:56:44

标签: python apache-spark

Getting app run id for a Spark job类似,但命令行或脚本除外。

我正在从我们的持续部署系统自动运行spark-submit,我需要跟踪应用程序ID,以便在再次运行作业(以及其他各种需求)之前将其杀死。

具体来说,这是一个在YARN集群上执行作业的Python脚本,可以读取spark-submit的标准输出,我们需要将该应用程序ID保存一段时间。

到目前为止我能想到的最好的计划是运行spark-submit,观察标准输出并提取应用程序ID,然后从进程中分离出来。在我看来,这种方法并不理想。

最好,spark-submit将(仅)打印出应用程序ID,然后打开,到目前为止,除了修改Spark本身之外,我看不到任何方法。

有更好,更明显的方法吗?

1 个答案:

答案 0 :(得分:0)

我已经创建了一个包装器脚本,可以为您提取应用程序ID。它的主持人是:https://github.com/gak/spark-submit-app-id-wrapper

示例:

# pip install spark-submit-app-id-wrapper

# ssaiw spark-submit --master yarn-cluster --class etc etc > /dev/null
application_1448925599375_0050

现在CI脚本可以通过spark-submit运行ssaiw并尽快获取应用程序ID。

请注意,它仅使用YARN进行测试。