【问题标题】:Spark Streaming application should stop after continuous batch failureSpark Streaming 应用程序应在连续批处理失败后停止
【发布时间】:2019-04-12 17:29:51
【问题描述】:

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

我从 Kafka 读取数据并写入 Kerberized HDFS,但随机我的批次在写入 HDFS 时开始失败,异常显示 kerberos 相关错误,但我的 spark 应用程序继续运行,所以我不知道我的批次除非我检查日志,否则失败。

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

【问题讨论】:

    标签: apache-spark spark-streaming


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 2015-05-17
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多