Понимание контрольных точек в структурированной потоковой передаче какфа - PullRequest
0 голосов
/ 11 марта 2019

В этой статье (https://dzone.com/articles/what-are-spark-checkpoints-on-dataframes)) говорится, что контрольные точки используются для «замораживания содержимого фрейма данных, прежде чем я сделаю что-то еще».

Однако в этой статье (http://blog.madhukaraphatak.com/introduction-to-spark-structured-streaming-part-7/)) говорится, что контрольная точка используется для восстановления после сбоя. Из этого я понимаю, что если искра обрабатывает тему kafka и происходит сбой искры, то после перезапуска она начнет обработку с смещения, где он последний раз проверялся. Правильно ли это утверждение?

Существуют ли 2 разные концепции контрольных точек в искре? Потому что я не могу примирить 2.

1 Ответ

1 голос
/ 12 марта 2019

Более простой ответ: если вы просто используете kafka, преобразуете и загружаете информацию в другую систему, вам не нужно иметь контрольные точки, фиксаций смещения kafka должно быть достаточно.

Однако, если вы выполняете управление окнами и рассчитываете текущие агрегаты (например, среднее значение за последние 5 часов), тогда (предварительно извлеченные) данные для временного окна (в данном случае последние 5 часов) сохраняются в контрольной точке.Это то, что имеется в виду под

заморозить содержимое кадра данных, прежде чем я сделаю что-то еще

В отсутствие контрольной точки, когда приложение spark перезапускает работающие агрегатыбудет сброшен (поскольку только данные, полученные после последнего принятого смещения, будут использованы из kafka).

На основании ответа от: Необходима ли контрольная точка при потоковой передаче искры

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