Будет ли мигать резюме с последнего смещения после выполнения уничтожения и повторного запуска приложения пряжи? - PullRequest
1 голос
/ 04 ноября 2019

Я использую FlinkKafkaConsumer, чтобы использовать kafka и включить контрольную точку. Теперь я немного запутался в механизме управления и контрольных точек. Я уже знаю, что Flink начнет читать разделы из группы потребителей. https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html#kafka-consumers-start-position-configuration и смещение будет сохранено в контрольной точке в удаленной файловой системе. https://ci.apache.org/projects/flink/flink-docs-stable/dev/connectors/kafka.html#kafka-consumers-and-fault-tolerance

Что произойдет, если я остановлю приложение, выполнив yarn application -kill appid и выполнив команду запуска, например ./bin flink run ...? Будет ли мигать получить смещение от контрольной точки или от идентификатора группы, управляемого Kafka?

1 Ответ

1 голос
/ 04 ноября 2019

Если вы снова запустите задание без определения точки сохранения ($ bin/flink run -s :savepointPath [:runArgs]), flink попытается получить смещения вашей группы потребителей от kafka (в более старых версиях от zookeeper). Но вы потеряете все остальные состояния вашей работы по изменению статуса (которая может быть проигнорирована, если у вас есть работа по изменению состояния без проверки состояния).

Я должен признать, что это поведение довольно запутанно. По умолчанию запуск задания без точки сохранения подобен запуску с нуля. Насколько я знаю, только реализация исходного кода kafka отличается от этого поведения. Если вы хотите изменить это поведение, вы можете установить setStartFromGroupOffsets из FlinkKafkaConsumer[08/09/10] на false. Это описано здесь: Конфигурация начальной позиции потребителей Kafka

Возможно, стоит более внимательно посмотреть документацию по flink: Что такое точка сохранения и чем она отличается от контрольных точек.

В двух словах

Контрольные точки:

Основной целью Контрольных точек является предоставление механизма восстановления в случае непредвиденных сбоев заданий. Жизненный цикл контрольной точки управляется Flink

Точки сохранения:

Точки сохранения создаются, принадлежат и удаляются пользователем. Их вариант использования предназначен для планового ручного резервного копирования и возобновления

В настоящее время ведутся дискуссии о том, как "объединить" точки сохранения и контрольные точки. Здесь можно найти много технических деталей: Улучшения Flink 47: Контрольные точки против точек сохранения

...