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



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

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

相关内容

  • 没有找到相关文章

最新更新