Состояние диспетчера задач Flink при сбое приложения

Что происходит, когда при обработке события из приложения jar в диспетчер задач возникает исключение?

а) Flink Job Manager убьет существующий диспетчер задач и создаст новый диспетчер задач?

б) Сам диспетчер задач восстанавливается после неудачного выполнения и перезапускает процесс, используя локальное состояние, сохраненное в RocksDB?

java.lang.IllegalArgumentException: "Application error-stack trace"

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

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

На данный момент не выяснил точную причину.


person tom    schedule 24.07.2019    source источник


Ответы (1)


Как правило, исключение в задании не должно приводить к отключению всего диспетчера задач. Здесь мы говорим о «нормальных» исключениях. В таком случае само задание завершится ошибкой, и диспетчер задач попытается перезапустить его или нет, в зависимости от предоставленной стратегии перезапуска.

Очевидно, если по какой-то причине ваш диспетчер задач умрет, например, из-за таймаутов или чего-то еще. Тогда он не будет перезапущен автоматически, если вы не используете какой-либо менеджер ресурсов или инструмент оркестровки, например YARN или Kubernetes. В этом случае работу следует начинать после того, как появятся свободные слоты.

Что касается поведения, которое Вы описали, что само задание «отключается», я предполагаю, что задание просто переходит в состояние FAILED. Это связано с тем, что разные стратегии перезапуска имеют разные пороги для максимального количества повторных попыток, и если задание не будет работать после указанного количества перезапусков, оно просто перейдет в состояние сбоя.

person Dominik Wosiński    schedule 30.07.2019
comment
Допустим, в этом диспетчере задач запущено несколько приложений (несколько слотов), тогда, если сам диспетчер задач не работает, это не повлияет на другое приложение, работающее в другом слоте того же диспетчера задач. - person Abhishek; 22.05.2021