Amit
Amit

Reputation: 31

Flink - Kryo serializer scala extensions are not available

I am using flink in my application and during deserialization of event getting following error

{"level":"INFO","logger":"org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer","msg":"Kryo serializer scala extensions are not available.","ts":"2023-10-27 03:12:11,959","thread":"Source: Kafka Source -> Process (4/4)#0","lineOffset":"501"}
java.lang.reflect.InvocationTargetException: null
        at jdk.internal.reflect.GeneratedMethodAccessor122.invoke(Unknown Source) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
        at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.getKryoInstance(KryoSerializer.java:493) ~[ :?]
        at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.checkKryoInitialized(KryoSerializer.java:522) ~[ :?]
        at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.copy(KryoSerializer.java:307) ~[ :?]
        at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.pushToOperator(CopyingChainingOutput.java:74) ~[ :?]
        at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:50) ~[ :?]
        at org.apache.flink.streaming.runtime.tasks.CopyingChainingOutput.collect(CopyingChainingOutput.java:29) ~[ :?]
        at org.apache.flink.streaming.runtime.tasks.SourceOperatorStreamTask$AsyncDataOutputToOutput.emitRecord(SourceOperatorStreamTask.java:309) ~[ :?]
        at org.apache.flink.streaming.api.operators.source.SourceOutputWithWatermarks.collect(SourceOutputWithWatermarks.java:110) ~[ :?]
        at org.apache.flink.connector.kafka.source.reader.KafkaRecordEmitter$SourceOutputWrapper.collect(KafkaRecordEmitter.java:67) ~[ :?]
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @cb0ed20
        at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354) ~[?:?]
        at java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297) ~[?:?]
        at java.lang.reflect.Field.checkCanSetAccessible(Field.java:178) ~[?:?]
        at java.lang.reflect.Field.setAccessible(Field.java:172) ~[?:?]
        at com.esotericsoftware.kryo.serializers.FieldSerializer.buildValidFields(FieldSerializer.java:282) ~[ :?]
        at com.esotericsoftware.kryo.serializers.FieldSerializer.rebuildCachedFields(FieldSerializer.java:219) ~[ :?]
        at com.esotericsoftware.kryo.serializers.FieldSerializer.rebuildCachedFields(FieldSerializer.java:156) ~[ :?]
        at com.esotericsoftware.kryo.serializers.FieldSerializer.<init>(FieldSerializer.java:133) ~[ :?]
        at org.apache.flink.runtime.types.ScalaCollectionsRegistrar.useField$1(FlinkScalaKryoInstantiator.scala:90) ~[flink-scala_2.12-1.18.0.jar:1.18.0]
        at org.apache.flink.runtime.types.ScalaCollectionsRegistrar.apply(FlinkScalaKryoInstantiator.scala:95) ~[flink-scala_2.12-1.18.0.jar:1.18.0]
        at org.apache.flink.runtime.types.AllScalaRegistrar.apply(FlinkScalaKryoInstantiator.scala:170) ~[flink-scala_2.12-1.18.0.jar:1.18.0]
        at org.apache.flink.runtime.types.FlinkScalaKryoInstantiator.newKryo(FlinkScalaKryoInstantiator.scala:81) ~[flink-scala_2.12-1.18.0.jar:1.18.0]

I had enabled the debug logs for flink to get some idea about this error but unable to get root cause of this error.

Upvotes: 3

Views: 1895

Answers (1)

Sergey
Sergey

Reputation: 3721

You probably missing the com.esotericsoftware:kryo jar

https://github.com/EsotericSoftware/kryo

Upvotes: 0

Related Questions