Как вручную зафиксировать смещение в прямой трансляции Spark Kafka?

Я внимательно посмотрел вокруг, но не нашел удовлетворительного ответа на это. Может быть, я что-то упустил. Пожалуйста помоги.

У нас есть потоковое приложение Spark, использующее тему Kafka, которое должно обеспечивать сквозную обработку перед продвижением смещений Kafka, например, обновление базы данных. Это очень похоже на построение поддержки транзакций в потоковой системе и гарантию того, что каждое сообщение обрабатывается (преобразуется) и, что более важно, выводится.

Я читал о Кафке DirectStreams. В нем говорится, что для надежного восстановления после сбоя в режиме DirectStreaming должна быть включена контрольная точка Spark, котораясохраняет смещения вместе с контрольными точками, Но управление смещением выполняется внутри (настройка параметров конфигурации Kafka, например ["auto.offset.reset", "auto.commit.enable", "auto.offset.interval.ms"]). Это не говорит о том, как (или если) мы можем настроить смещения фиксации (например, после загрузки базы данных). Другими словами, можем ли мы установить"auto.commit.enable" ложно и самим управлять смещениями (в отличие от соединения с БД)?

Любое руководство / помощь с благодарностью.

 Girish Gupta25 дек. 2018 г., 09:49
Есть ли какая-либо реализация Python для ручной фиксации смещения в pyspark. Я нигде не могу его найти
 void06 февр. 2018 г., 11:43

Ответы на вопрос(1)

Статья ниже может стать хорошим началом для понимания подхода.

искровым Кафка-достижения-нулевой потери данных

Дальше больше,

В статье предлагается использовать клиент zookeeper напрямую, который также может быть заменен чем-то вроде KafkaSimpleConsumer. Преимущество использования Zookeper / KafkaSimpleConsumer заключается в том, что инструменты мониторинга зависят от сохраненного смещения Zookeper. Также информация также может быть сохранена на HDFS или любом другом надежном сервисе.

 TroubleShooter04 авг. 2016 г., 06:55
Это определенно хорошее чтение @Rakesh, спасибо! В статье предлагается альтернативный подход, при котором человек по-прежнему не контролирует смещения (путем установки автоматической фиксации на false). Однако, читая эту статью, я осознал важную концепцию в конечном итоге непротиворечивых систем, что, как только вы получите сообщение через вашу дверь, служба обеспечит его доставку. Думаю, это единственный механизм, которому можно следовать в моем случае.

Ваш ответ на вопрос