Flink выполняет значительное сканирование во время предполетной фазы приложения Flink (https://ci.apache.org/projects/flink/flink-docs-stable/dev/types_serialization.html). При создании источников, операторов и приемников Flink сканирует типы данных объектов, которые используются в топологии данный потоковый поток, по-видимому, Flink будет пытаться оптимизировать задания на основе этой информации.
Настраивается ли это сканирование? Могу ли я отключить его и просто заставить Flink использовать только сериализацию Kryo, а не использовать эту сканированную информацию или использовать ее?
У меня есть очень большой, глубоко вложенный класс в проприетарной библиотеке, который был сгенерирован автоматически, и Flink, похоже, попадает в очень большой бесконечный цикл при сканировании, что приводит к ошибкам нехватки памяти после запуска в течение нескольких часов (приложение никогда фактически запускается через env.execute()
, даже если я значительно увеличил размер кучи). У класса есть несколько циклических ссылок, то есть класс и его дочерние классы содержат ссылки на другие классы того же типа, это может быть проблемой?