Задание Flink / поток данных при сбое и восстановлении нескольких диспетчеров задач

Если у нас есть 2 диспетчера задач, каждый из которых работает в разных JVM (как всегда), и предположим, что у нас есть оператор в середине потока данных, который завершился неудачно из-за исключения или JVM, прерванного из-за сбоя, можем ли мы предположить, что весь поток данных, включая все источники и операторов из всех диспетчеров задач, которые участвуют в этом задании / потоке данных, завершится ошибкой и перезапустится (если включен перезапуск)? Читая ваши документы, я понимаю, что да, но хочу убедиться.

JVM 1/
Task manager 1
    source1 (1) --> operator1 (1) --> ...
                |
JVM 2/          |
Task manager 2  |
                |
                --> operator1 (2) --> ...

Итак, предположим, что operator1 (2) не работает / его JVM не работает, будет ли экземпляр source1 и оба экземпляра operator1 завершатся ошибкой и перезапустятся?


person Shay    schedule 15.06.2018    source источник
comment
Пожалуйста, задавайте свои вопросы отдельно и дайте им содержательные заголовки. Это важно, потому что другие тоже должны быть в состоянии найти соответствующие вопросы и ответы.   -  person Fabian Hueske    schedule 15.06.2018
comment
ОК - я оставил здесь один, а два других опубликую позже. Спасибо!   -  person Shay    schedule 15.06.2018
comment
Спасибо. Я посмотрю на них!   -  person Fabian Hueske    schedule 15.06.2018


Ответы (1)


Да, это правильно. В текущей версии (Flink 1.5.0) задание восстанавливается отменой всех заданий и их перезапуском.

Однако в будущем это может измениться, чтобы ускорить цикл восстановления. Если это произойдет, задачи будут приостановлены, перезагружены их состояние с последней успешной контрольной точки и продолжатся после восстановления неудачных задач.

person Fabian Hueske    schedule 15.06.2018