Почему анализ данных Kinesis для Flink падает при увеличении или уменьшении масштаба?

#apache-flink #amazon-kinesis #amazon-kinesis-analytics

Вопрос:

Мы используем Kinesis для Apache Flink для анализа различных событий посетителей из нескольких источников. В одном из операторов мы используем MapSate для расчета совокупных показателей. Приложение Flink было автоматически масштабировано 4 раза в течение одной недели выполнения. Проблема в том, что каждый раз при автоматическом масштабировании состояние оператора полностью сбрасывалось. В журналах нет сообщений об ошибках, кроме — » ПОЛУЧЕН СИГНАЛ 15: SIGTERM. Завершение работы по запросу». от TaskManagerRunner.

Задание использует следующую конфигурацию: Конфигурация контрольной точки использует режим по умолчанию и включена. Включено автоматическое масштабирование приложения. Конфигурация восстановления приложения — Обновление без моментального снимка. Государство не использует TTL.

Время безотказной работы красной линии КПУ синей линии

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

Комментарии:

1. Для автоматического масштабирования требуется полный перезапуск.

2. @DavidAnderson, так поможет ли в этом случае RESTORE_FROM_LATEST_SNAPSHOT? Делает ли kinesis снимок перед автоматическим масштабированием?

3. Согласно docs.aws.amazon.com/kinesisanalytics/latest/java/… «Если значение SnapshotsEnabled равно true в конфигурации ApplicationSnapshotConfiguration для приложения, Kinesis Data Analytics автоматически создает и использует моментальные снимки при обновлении, масштабировании или остановке приложения, чтобы обеспечить семантику обработки точно один раз».