我运行一个spark应用程序作为 yarn-cluster
模式。
我有一个困难的是,我不能停止Spark优雅然后退出(1)提交失败的Jenkins工作。
jenkins执行的shell脚本
/bin/spark-submit \
--master yarn-cluster \
...
Spark应用
val sparkSession = ...
val resultDataframe = ...
if(resultDataframe.count() == 0){
// lets stop spark
sparkSession.stop()
// I want to finish spark app and fail jenkins job, so throw exception.
throw new RuntimeException("Hey Jenkins, please fail.")
}
上述代码的行为
spark应用程序在retrying conf时重试。但是我不想出于一般目的而关闭重试。上面的代码不是实际的,但是流程是相似的。
问题
如何在应用程序中以编程方式停止spark并退出主应用程序exit和fail by?
1条答案
按热度按时间kzipqqlq1#
阿法伊克,
System.exit(1)
会解决你的问题。上述程序将退出
exit 1
带有以下消息如果上述方法不起作用,那么
在shell脚本中,运行spark submit,然后(使用上面的
System.exit(1)
代码)并尝试使用$?
接线员。