Будет ли мигание возобновлено с последнего смещения после выполнения kill и запуска приложения yarn?

Я использую FlinkKafkaConsumer, чтобы использовать кафку и включить контрольную точку. Теперь я немного запутался в управлении смещением и механизме контрольных точек. Я уже знаю, что 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 ...? Будет ли flink получать смещение от контрольной точки или от идентификатора группы, управляемого kafka?


person jay Wong    schedule 04.11.2019    source источник


Ответы (1)


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

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

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

В двух словах

Контрольно-пропускные пункты:

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

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

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

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

person TobiSH    schedule 04.11.2019
comment
Понятно! Спасибо! Так здорово! - person jay Wong; 08.11.2019