启动Flink应用程序时出现序列化错误

问题描述 投票:0回答:1

我有一个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添加到命令行,但似乎没有为我提供更多信息。我在纱线簇模式下运行。

serialization apache-flink flink-streaming
1个回答
0
投票

我的一个类正在使用JDBC的BasicDataSource,其中包含不可序列化的元素。我必须将其标记为transient才能进行序列化。

© www.soinside.com 2019 - 2024. All rights reserved.