【问题标题】:ERROR Stopping due to error (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io/debezium/util/IoUtilERROR 由于错误而停止 (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io/debezium/util/IoUtil
【发布时间】:2021-01-09 05:22:08
【问题描述】:

目标

我正在尝试使用 Debezium 连接器 (1.2.4.Final) 从 Kafka Connect(最好是分布式模式)连接到我的 Oracle 数据库 (12c)。我使用的 Kafka 版本是 2.13-2.6.0。

使用的命令

正如here 所说,我正在运行这个命令:

C:\Users\username\Downloads\kafka>bin\windows\connect-distributed.bat config\connect-distributed.properties

错误

我得到的错误是:

ERROR 因错误而停止 (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io/debezium/util/IoUtil 在 io.debezium.connector.oracle.Module.(Module.java:19) 在 io.debezium.connector.oracle.OracleConnector.version(OracleConnector.java:23) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.versionFor(DelegatingClassLoader.java:390) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.versionFor(DelegatingClassLoader.java:395) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.getPluginDesc(DelegatingClassLoader.java:365) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanPluginPath(DelegatingClassLoader.java:337) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins(DelegatingClassLoader.java:268) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.registerPlugin(DelegatingClassLoader.java:260) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initPluginLoader(DelegatingClassLoader.java:229) 在 org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders(DelegatingClassLoader.java:206) 在 org.apache.kafka.connect.runtime.isolation.Plugins.(Plugins.java:61) 在 org.apache.kafka.connect.cli.ConnectDistributed.startConnect(ConnectDistributed.java:91) 在 org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:78) 引起:java.lang.ClassNotFoundException:io.debezium.util.IoUtil 在 java.net.URLClassLoader.findClass(URLClassLoader.java:382) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:418) 在 org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:351) ... 13 更多

设置

在我的 connect-distributed.properties 中,我有这个:

plugin.path=C:/Users/username/Downloads/kafka/libs/debezium

在 debezium 文件夹中(根据 Gunnar 在this question 中的评论建议),我有这些罐子:

我还在 %PATH% 中添加了插件路径,如下:

echo %PATH% | findstr debezium

XXX;C:\Users\用户名\Downloads\kafka\libs\debezium;

帮助

任何帮助将不胜感激,因为我希望用这个 debezium 连接器替换我的数据库轮询,这似乎是一种更好的方法。谢谢!

【问题讨论】:

    标签: debezium


    【解决方案1】:

    Gunnar here 的解决方案有效! (如果您想查看,他的解释也在那里。)

    plugin.path=C:\\Users\\username\\Downloads\\kafka\\libs
    

    这也有效:

    plugin.path=C:/Users/username/Downloads/kafka/libs
    plugin.path=C:\Users\username\Downloads\kafka\libs
    plugin.path=/Users/username/Downloads/kafka/libs
    

    错误是:plugin.path 应该取决于 libs 而不是 libs/debezium

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 2020-12-03
      • 1970-01-01
      • 2020-12-07
      • 2020-01-05
      • 1970-01-01
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多