Kafka连接ftp

lskq00tm  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(476)

运行kafka connect ftp的连接器时显示以下错误

Exception in thread "main" java.lang.IncompatibleClassChangeError: Implementing class
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.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
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.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.getPluginDesc(DelegatingClassLoader.java:279)
at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanPluginPath(DelegatingClassLoader.java:260)
at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins(DelegatingClassLoader.java:201)
at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.registerPlugin(DelegatingClassLoader.java:193)
at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders(DelegatingClassLoader.java:153)
at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:47)
at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:75)

我已经提到了两个社区网站,这是已经在合流连接器网站https://github.com/eneco/kafka-connect-ftphttpshttp://github.com/landoop/stream-reactor
任何人请建议解决这个错误。

yizd12fk

yizd12fk1#

此连接器有两个主要问题:
它将connect的api中的类与其依赖项捆绑在一起。e、 g.包中的类 org.apache.kafka.connect . 不建议这样做,应将此类依赖项标记为已提供。
连接器因类加载问题而失败的实际原因是它依赖于(至少根据它的 master 分支)在apache kafka的版本上,该版本可能与部署的连接工作程序的版本不匹配。具体来说,这取决于 kafkaVersion = '0.10.2.0' 这不是最新的。kafka connect在其提供类加载隔离的最新版本中,将忽略它所认为的系统类,例如 org.apache.kafka.connect 当它们被连接器的jar导入时。相反,它将从apachekafka附带的kafka connect jar加载此类类。
正如您所观察到的那样,上述问题可能会导致类加载失败。
理想情况下,应该在连接器级别解决这些问题。
您可以申请的解决方法有:
从源代码构建连接器代码,在升级它所依赖的kafka版本并将其kafka依赖项标记为所提供的(包括kafka connect和kafka clients依赖项)。或者,
降级部署的kafka connect版本,使其与连接器当前依赖的版本完全匹配。
这里也记录了一个类似的问题:kafka mongodb sink connector没有启动

相关问题