Spark kafka重启没有得到范围内的偏移量

时间:2018-06-07 10:33:19

标签: apache-spark apache-kafka

我们正在将DB中的kafka偏移存储为检查点。这有助于在重新启动应用程序时消除零消息。

有一种情况,当我们重新启动spark应用程序时,偏移量不在kafka中(由于升级或在docker中运行而被清除)。在这种情况下,spark app会抛出错误

 java.lang.IllegalArgumentException: requirement failed: numRecords must not be negative

我们想在这种情况下重新启动app并从最新的偏移中读取。

try{
 KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder, (String, String)](
    ssc, kafkaParams, fromOffset, msgHandler)
} catch {case ex: Exception => {
KafkaUtils.createDirectStream[String, String,
    StringDecoder, StringDecoder](ssc, kafkaParams, topicsSet)
 }
}

添加try / catch并从最新的偏移开始对此没有帮助。由于错误发生在执行程序中。有没有办法从火花司机处理这个?

0 个答案:

没有答案