You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by aiden <18...@163.com> on 2023/07/04 06:22:58 UTC

flink1.17.1使用kafka source异常

hi
    
    在使用1.17.1版本kafka source时遇到如下异常:
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/flink/util/ChildFirstClassLoader) previously initiated loading for a different type with name "org/apache/kafka/clients/consumer/ConsumerRecord"
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
	at org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:71)
	at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:51)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
	at java.lang.Class.getDeclaredMethod(Class.java:2128)
	at java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1629)
	at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:79)
	at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:520)
	at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:494)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:494)
	at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:391)
	at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:681)
	at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
	at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
	at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
	at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:534)
	at org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:522)
	at org.apache.flink.util.SerializedValue.deserializeValue(SerializedValue.java:67)
	at org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.create(OperatorCoordinatorHolder.java:471)
	at org.apache.flink.runtime.executiongraph.ExecutionJobVertex.createOperatorCoordinatorHolder(ExecutionJobVertex.java:286)
	at org.apache.flink.runtime.executiongraph.ExecutionJobVertex.initialize(ExecutionJobVertex.java:223)
	... 20 more
以下是我的部分POM               <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-core</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-kafka</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-connector-base</artifactId>
            <version>1.17.1</version>
        </dependency>


看起来像是类加载器异常,需要我修改哪些地方吗

Re: flink1.17.1使用kafka source异常

Posted by yh z <zh...@gmail.com>.
Hi, aiden. 看起来是类冲突,按照官方的文档,使用 kafka 时,你应该是不需要引入 flink-core 和
flink-connector-base 的(
https://nightlies.apache.org/flink/flink-docs-release-1.17/docs/connectors/table/kafka/)。如果是因为其他原因需要使用这两个
jar, 你可以使用 mvn dependency::tree 查看一下
"org/apache/kafka/clients/consumer/ConsumerRecord" 是在哪里被重复加载进来,可以exclude 掉非
flink-connector-kafka 的这个类。

aiden <18...@163.com> 于2023年7月4日周二 14:23写道:

> hi
>
>     在使用1.17.1版本kafka source时遇到如下异常:
> Caused by: java.lang.LinkageError: loader constraint violation: loader
> (instance of org/apache/flink/util/ChildFirstClassLoader) previously
> initiated loading for a different type with name
> "org/apache/kafka/clients/consumer/ConsumerRecord"
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>         at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
>         at
> org.apache.flink.util.ChildFirstClassLoader.loadClassWithoutExceptionHandling(ChildFirstClassLoader.java:71)
>         at
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:51)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         at java.lang.Class.getDeclaredMethods0(Native Method)
>         at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
>         at java.lang.Class.getDeclaredMethod(Class.java:2128)
>         at
> java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1629)
>         at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:79)
>         at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:520)
>         at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:494)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:494)
>         at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:391)
>         at
> java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:681)
>         at
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>         at
> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>         at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>         at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>         at
> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>         at
> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>         at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>         at
> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
>         at
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:534)
>         at
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:522)
>         at
> org.apache.flink.util.SerializedValue.deserializeValue(SerializedValue.java:67)
>         at
> org.apache.flink.runtime.operators.coordination.OperatorCoordinatorHolder.create(OperatorCoordinatorHolder.java:471)
>         at
> org.apache.flink.runtime.executiongraph.ExecutionJobVertex.createOperatorCoordinatorHolder(ExecutionJobVertex.java:286)
>         at
> org.apache.flink.runtime.executiongraph.ExecutionJobVertex.initialize(ExecutionJobVertex.java:223)
>         ... 20 more
> 以下是我的部分POM               <dependency>
>             <groupId>org.apache.flink</groupId>
>             <artifactId>flink-core</artifactId>
>             <version>1.17.1</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.flink</groupId>
>             <artifactId>flink-connector-kafka</artifactId>
>             <version>1.17.1</version>
>         </dependency>
>         <dependency>
>             <groupId>org.apache.flink</groupId>
>             <artifactId>flink-connector-base</artifactId>
>             <version>1.17.1</version>
>         </dependency>
>
>
> 看起来像是类加载器异常,需要我修改哪些地方吗
>