问题遇到的现象和发生背景
在测试flink-CDC 同步oracle 遇到报错,不知道是什么原因
报错如下
用代码块功能插入代码,请勿粘贴截图
Exception in thread "main" org.apache.flink.api.common.InvalidProgramException: com.ververica.cdc.connectors.oracle.OracleValidator@ea1a8d5 is not serializable. The object probably contains or references non serializable fields.
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:164)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:132)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:69)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:2053)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1737)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1720)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1689)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1675)
at com.wujie.CDC.OracleCDCTest.main(OracleCDCTest.java:77)
Caused by: java.io.NotSerializableException: com.ververica.cdc.connectors.oracle.OracleValidator
程序代码
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(1);
Properties pros = new Properties();
pros.setProperty("debezium.log.mining.strategy", "online_catalog");
pros.setProperty("debezium.log.mining.continuous.mine", "true");
DebeziumSourceFunction<String> sourceFunction = OracleSource.<String>builder()
.hostname("172.22.5.151")
.port(1521)
.database("helowin")
.schemaList("ZHOU")
.tableList("ZHOU.STUDENT_INFO")
.username("ZHOU")
.password("123456")
.debeziumProperties(pros)
.deserializer(new CustomDebeziumDeserializationSchema())
.startupOptions(StartupOptions.initial())
.build();
// 数据源
DataStreamSource<String> source = env.addSource(sourceFunction);
source.print();
env.execute("flink cdc");