Я использую Kafka 0.8.2 для получения данных из AdExchange, затем я использую Spark Streaming 1.4.1 для хранения данных до MongoDB.
Моя проблема в том, что я перезапускаю свой Spark Streaming Job, например, обновляю новую версию, исправляю ошибку, добавляю новые функции. Он будет продолжать читать последние offset of kafka в то время, после чего я потеряю данные. AdX нажимаем на kafka во время перезапуска задания.
Я пробую что-то вроде auto.offset.reset -> smallest, но оно будет получать от 0 до > последнего, тогда данные были огромны и дублировались в db.
Я также пытаюсь установить конкретные group.id и consumer.id в Spark, но это то же самое.
Как сохранить последнюю искру offset, потребляемую до zookeeper или kafka, затем можно прочитать от этого до последнего offset?