Flink序列化反序列化异常InvalidClassException MapperConfigBase local class incompatible serialVersion

Flink应用运行时遇到的异常

  • org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot instantiate user function
  • Caused by: java.io.InvalidClassException: com.fasterxml.jackson.databind.cfg.MapperConfigBase; local class incompatible: stream classdesc serialVersionUID = -1012789217358583861, local class serialVersionUID = 8983367024417715798
org.apache.flink.streaming.runtime.tasks.StreamTaskException: Cannot instantiate user function.
at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:405) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.OperatorChain.createOperatorChain(OperatorChain.java:859) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.OperatorChain.createOutputCollector(OperatorChain.java:826) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.RegularChain.<init>(RegularChain.java:202) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.OperatorChain.init(OperatorChain.java:187) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.StreamTask.restoreInternal(StreamTask.java:707) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.streaming.runtime.tasks.StreamTask.restore(StreamTask.java:693) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:953) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:922) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:792) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at java.lang.Thread.run(Thread.java:750) ~[?:1.8.0_412]
Caused by: java.io.InvalidClassException: com.fasterxml.jackson.databind.cfg.MapperConfigBase; local class incompatible: stream classdesc serialVersionUID = -1012789217358583860, local class serialVersionUID = 8983367024417715797
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:699) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1804) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1851) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2000) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1511) ~[?:1.8.0_412]
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2340) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2264) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2212) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1562) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431) ~[?:1.8.0_412]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:389) ~[?:1.8.0_412]
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:539) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:527) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
at org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:481) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]
... 12 more
at org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:389) ~[flink-dist_2.12-1.18.0.jar:1.18.0-csa1.12.0]

解决方案

  1. 在Flink 集群flink-conf.yaml中配置如下参数:
    classloader.resolve-order: parent-first
    使变量生效,然后重启flink应用。
  2. 在flink代码中配置参数及值classloader.resolve-order: parent-first,然后重启应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值