Ошибка сериализации при запуске приложения Flink - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть приложение Flink, которое продолжает выдавать ошибку с этой ошибкой.

com.org.ads.audience.traffic.MyClass@6eaa21d8 is not serializable. The object probably contains or references non serializable fields.
        org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:140)
        org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:115)
        org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:1558)
        org.apache.flink.streaming.api.datastream.DataStream.clean(DataStream.java:185)
        org.apache.flink.streaming.api.datastream.DataStream.flatMap(DataStream.java:611

Очень трудно отследить, почему этот класс не сериализуем.Я убедился, что MyClass и все другие классы, на которые он ссылается, Serializable и имеют конструкторы по умолчанию.Как я могу отладить это дальше?Я попытался добавить -Dsun.io.serialization.extendedDebugInfo=true в командную строку, но она, похоже, не дает мне больше информации.Я бегу в режиме кластера пряжи.

1 Ответ

0 голосов
/ 27 сентября 2019

Один из моих классов использовал JDBC BasicDataSource, который содержит не сериализуемые элементы.Я должен был отметить это как transient, чтобы иметь возможность сериализации.

...