Восстановление большого состояния в потоковом задании Apache Flink - PullRequest
0 голосов
/ 05 декабря 2018

У нас есть кластер с Hadoop и YARN на AWS EMR с одним ядром и одним мастером, каждый с 4 vCores, 32 ГБ памяти, 32 ГБ диска.У нас есть только одно продолжительное приложение YARN, и в этом случае есть только одно или два длительно работающих приложения Flink, каждое с параллелизмом 1. Контрольная точка имеет 10-минутный интервал с минимальным интервалом в 5 минут.Мы используем EventTime с окном 10 минут и водяным знаком продолжительностью 15 секунд.Состояние сохраняется в S3 через FsStateBackend с включенными асинхронными снимками.Точно-однажды контрольная точка также включена.

У нас настроены UUID для всех операторов, но не настроен HA для YARN или явный максимальный параллелизм для операторов.

В настоящее время, когдавосстановление из контрольной точки (3 ГБ) обработка удерживает в окне до тех пор, пока не возникнет ошибка org.apache.flink.util.FlinkException: The assigned slot <container_id> was removed во время следующей контрольной точки.Я видел, что все, кроме оператора с самым большим состоянием (которое является ProcessFunction непосредственно после оконного управления), заканчивают контрольную точку.

Я знаю, что настоятельно рекомендует использовать RocksDB для производства,но является ли это обязательным для государства, которое, скорее всего, не превысит 50 ГБ?

Где было бы наилучшим местом для решения этой проблемы?Параллельность

...