连续批处理失败后,Spark Streaming应用程序应停止

时间:2019-04-12 07:16:04

标签: apache-spark spark-streaming

我有一个带有Spark 2.3.1的DStream流应用程序。

我正在从Kafka读取数据并将其写入Kerberized HDFS,但是在写入HDFS时随机地我的批处理开始失败,并且异常显示与kerberos相关的错误,但是我的spark应用程序继续运行,所以我不知道我的批处理除非直到我检查日志,否则操作都会失败。

我的问题是,有什么办法可以限制连续批处理故障转移的数量吗?建议是否存在一些属性,我们可以在其中设置批处理失败的数量,之后该应用程序将导致失败。例如。 spark.streaming.xyz = 3,然后应用程序应在连续3次微型批处理失败后停止。

1 个答案:

答案 0 :(得分:0)

您可以维护某种变量(驱动程序级别的静态变量),并在遇到异常时不断增加它,一旦达到特定阈值(比如3),您就可以关闭Spark Streaming上下文来终止工作

try{
.
.
}catch(Exception e){
   count++;
   if(count>threshold)
    streamingContext.close();
}