Можно ли настроить сканирование сериализации предполетного типа Flink? - PullRequest
0 голосов
/ 04 июня 2019

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

Настраивается ли это сканирование? Могу ли я отключить его и просто заставить Flink использовать только сериализацию Kryo, а не использовать эту сканированную информацию или использовать ее?

У меня есть очень большой, глубоко вложенный класс в проприетарной библиотеке, который был сгенерирован автоматически, и Flink, похоже, попадает в очень большой бесконечный цикл при сканировании, что приводит к ошибкам нехватки памяти после запуска в течение нескольких часов (приложение никогда фактически запускается через env.execute(), даже если я значительно увеличил размер кучи). У класса есть несколько циклических ссылок, то есть класс и его дочерние классы содержат ссылки на другие классы того же типа, это может быть проблемой?

1 Ответ

0 голосов
/ 04 июня 2019

Вы можете попробовать

env.getConfig().addDefaultKryoSerializer(clazz, serializer)

, где сериализатор - это пользовательский сериализатор .

. Вы можете принудительно запустить Kryo через

env.getConfig().enableForceKryo();

См. Сериализация типов Pojo Подробнее об этом.

...