为什么当 Scala Spark 应用抛出异常时 AWS EMR 步骤不会失败
Why AWS EMR step is not failed when exception from Scala Spark app thrown
我在主要方法中有nect代码:
try {
tappSparkEngine.process();
}catch{
case e: Exception => LOG.error(e.toString)
throw e
}
有一种情况会抛出异常并记录在日志中:
2018-04-02 03:05:04 ERROR TappSparkApp$:55 - java.lang.Exception:
Midnight points are missed when expected
这是日志中的最后一条记录。
但是 EMR 作业步骤不是失败状态,而是完成状态。为什么这样?以及如何让它失败?
Return 来自您程序的 non-zero 值。
例如:在Java
system.exit(-1)
下面link,程序员在python
中做同样的事情
https://aws.amazon.com/blogs/big-data/submitting-user-applications-with-spark-submit/
尝试将异常包装在 org.apache.spark.SparkException
中
我在主要方法中有nect代码:
try {
tappSparkEngine.process();
}catch{
case e: Exception => LOG.error(e.toString)
throw e
}
有一种情况会抛出异常并记录在日志中:
2018-04-02 03:05:04 ERROR TappSparkApp$:55 - java.lang.Exception: Midnight points are missed when expected
这是日志中的最后一条记录。 但是 EMR 作业步骤不是失败状态,而是完成状态。为什么这样?以及如何让它失败?
Return 来自您程序的 non-zero 值。
例如:在Java
system.exit(-1)
下面link,程序员在python
中做同样的事情 https://aws.amazon.com/blogs/big-data/submitting-user-applications-with-spark-submit/尝试将异常包装在 org.apache.spark.SparkException
中