Krzysztof Chmielewski
04/27/2023, 4:06 PMKryo serializer scala extensions are not availableI'm not using Scala in my sandbox job, pure java. What should I do to turn this off? the same thing was reported by other user on April 21st but unfortunately got no response https://apache-flink.slack.com/archives/C03G7LJTS2G/p1682093159771169
David Moravek
04/28/2023, 7:27 AM"Falling back to default Kryo serializer, because flink-scala is not present on the classpath."David Moravek
04/28/2023, 7:27 AMKrzysztof Chmielewski
04/28/2023, 7:54 AMKrzysztof Chmielewski
04/28/2023, 7:56 AMKrzysztof Chmielewski
04/28/2023, 7:56 AMDavid Moravek
04/28/2023, 8:03 AMDavid Moravek
04/28/2023, 8:05 AMKrzysztof Chmielewski
04/28/2023, 8:08 AMhow are you using the serializer in your pipeline?Nothings special I just have a pipeline Source -> process - > Sink Custom source, and custom sink (sink prints events in logs) Im using two custom data object, Pojo Like, but they dont have getters/setters Source is producins Object A, process is cosuming those and creates ObjectB, Sink consumes ObjectB and prints it in logs
Krzysztof Chmielewski
04/28/2023, 8:09 AMDavid Moravek
04/28/2023, 8:11 AMChesnay Schepler
04/28/2023, 8:25 AMKrzysztof Chmielewski
04/28/2023, 10:05 AMKrzysztof Chmielewski
04/28/2023, 10:12 AMStreamExecutionEnvironment env = createStreamEnv();
env.addSource(new CheckpointCountingSource<>(5, 5, eventProducer))
.setParallelism(1)
.process(new FlinkBusinessLogic())
.addSink(sink);
12:08:34,088 DEBUG org.apache.flink.streaming.runtime.tasks.StreamTask [] - Notify checkpoint 1 complete on task Process -> Sink: Unnamed (16/16)#0
12:08:34,088 DEBUG org.apache.flink.streaming.runtime.tasks.SubtaskCheckpointCoordinatorImpl [] - Notification of checkpoint COMPLETE 1 for task Process -> Sink: Unnamed (16/16)#0
12:08:34,088 DEBUG org.apache.flink.streaming.runtime.tasks.SubtaskCheckpointCoordinatorImpl [] - Notification of checkpoint SUBSUME -1 for task Process -> Sink: Unnamed (16/16)#0
12:08:34,138 INFO org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer [] - Kryo serializer scala extensions are not available.
java.lang.ClassNotFoundException: org.apache.flink.runtime.types.FlinkScalaKryoInstantiator
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:315) ~[?:?]
at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.getKryoInstance(KryoSerializer.java:484) ~[flink-core-1.17.0.jar:1.17.0]
at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.checkKryoInitialized(KryoSerializer.java:519) ~[flink-core-1.17.0.jar:1.17.0]
at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.deserialize(KryoSerializer.java:391) ~[flink-core-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.deserialize(StreamElementSerializer.java:190) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.streamrecord.StreamElementSerializer.deserialize(StreamElementSerializer.java:43) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.plugable.NonReusingDeserializationDelegate.read(NonReusingDeserializationDelegate.java:53) ~[flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.io.network.api.serialization.NonSpanningWrapper.readInto(NonSpanningWrapper.java:337) ~[flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.io.network.api.serialization.SpillingAdaptiveSpanningRecordDeserializer.readNonSpanningRecord(SpillingAdaptiveSpanningRecordDeserializer.java:128) ~[flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.io.network.api.serialization.SpillingAdaptiveSpanningRecordDeserializer.readNextRecord(SpillingAdaptiveSpanningRecordDeserializer.java:103) ~[flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.io.network.api.serialization.SpillingAdaptiveSpanningRecordDeserializer.getNextRecord(SpillingAdaptiveSpanningRecordDeserializer.java:93) ~[flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.io.AbstractStreamTaskNetworkInput.emitNext(AbstractStreamTaskNetworkInput.java:100) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.io.StreamOneInputProcessor.processInput(StreamOneInputProcessor.java:65) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.tasks.StreamTask.processInput(StreamTask.java:550) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.tasks.mailbox.MailboxProcessor.runMailboxLoop(MailboxProcessor.java:231) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.tasks.StreamTask.runMailboxLoop(StreamTask.java:839) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:788) ~[flink-streaming-java-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.taskmanager.Task.runWithSystemExitMonitoring(Task.java:952) [flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.taskmanager.Task.restoreAndInvoke(Task.java:931) [flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:745) [flink-runtime-1.17.0.jar:1.17.0]
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:562) [flink-runtime-1.17.0.jar:1.17.0]
at java.lang.Thread.run(Thread.java:834) [?:?]
12:08:34,138 INFO org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer [] - Kryo serializer scala extensions are not available.
java.lang.ClassNotFoundException: org.apache.flink.runtime.types.FlinkScalaKryoInstantiator
at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[?:?]
at jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]Krzysztof Chmielewski
04/28/2023, 10:13 AM<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.12</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
the exception/log line is goneDavid Moravek
04/28/2023, 11:08 AMKrzysztof Chmielewski
04/28/2023, 12:18 PMDavid Moravek
04/28/2023, 12:21 PMorg.apache.flink.runtime.state.heap.CopyOnWriteStateTable#stateSnapshot seems to duplicate serializers with every checkpoint, that might be relatedChesnay Schepler
04/28/2023, 12:40 PMkryo instance in the Kryo serializer is transient and won't be copiedDavid Moravek
04/28/2023, 1:40 PMChesnay Schepler
04/28/2023, 1:41 PMChesnay Schepler
04/28/2023, 1:41 PMChesnay Schepler
04/28/2023, 1:41 PMKrzysztof Chmielewski
04/28/2023, 1:53 PMif you're using Scala types.FYI @Chesnay Schepler I was not using any scala types in my Flink Job.
Chesnay Schepler
04/28/2023, 2:05 PMKrzysztof Chmielewski
04/28/2023, 2:18 PMChesnay Schepler
04/28/2023, 2:19 PMKrzysztof Chmielewski
04/28/2023, 2:21 PM<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-scala_2.12</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
And i believe that jar is in Flink's lib folder, so I dont think I had this issue when running my job on a cluster, Only in IDEKrzysztof Chmielewski
04/28/2023, 2:21 PMChesnay Schepler
04/28/2023, 2:21 PMChesnay Schepler
04/28/2023, 2:22 PMKrzysztof Chmielewski
04/28/2023, 2:24 PMChesnay Schepler
04/28/2023, 2:25 PM