Как реализовать управление смещением в потоковой передаче Spark с помощью Kafka внутри самой Spark? - PullRequest
0 голосов
/ 05 июля 2019

Я должен реализовать управление смещением в Spark для потокового задания на Java, которое читает из потока Kafka. Однако, хотя процесс был описан в официальной документации здесь , он на самом деле не дает пример кода того, как на самом деле хранить и извлекать смещения из контрольных точек. Скорее, это загадочно говорит, что

Если вы включите контрольную точку Spark, смещения будут сохранены в контрольной точке.

Значит ли это, что если я просто предоставлю каталог контрольных точек для контекста Spark, он автоматически сохранит смещения? Как насчет извлечения последнего смещения, прочитанного, когда приложение возвращается? Страница подробностей о контрольной точке, которая связана там, также оставляет все для читателя и дает только синтаксис для установки пункта назначения контрольной точки.

Это и это дают некоторое представление о том, как использовать контрольные точки, но во всех случаях я могу обнаружить, что они использовались для совокупного вычисления чего-либо, а не для хранить смещения. Этот вопрос подходит близко, но все еще не описывает его.

Пожалуйста, помогите мне в достижении этой цели.

1 Ответ

0 голосов
/ 09 июля 2019

Сохранение смещений в контрольной точке не работает, потому что spark сохранит задачи в контрольной точке, поэтому обновление кода требует удаления контрольной точки.Вместо этого вы можете сохранить смещения в Zookeeper, Kafka, File-System или любой базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...