客观的
我正在尝试使用 Debezium 连接器(1.2.4.Final)从 Kafka Connect(最好是分布式模式)连接到我的 Oracle 数据库(12c)。我使用的Kafka版本是2.13-2.6.0。
使用的命令
正如所提到的here https://kafka.apache.org/documentation/#connect_running,我正在运行这个命令:
C:\Users\username\Downloads\kafka>bin\windows\connect-distributed.bat config\connect-distributed.properties
Error
我得到的错误是:
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 更多
Settings
在我的 connect-distributed.properties 中,我有这个:
plugin.path=C:/Users/username/Downloads/kafka/libs/debezium
And inside the debezium folder(following Gunnar's recommendation from the comment in this question https://stackoverflow.com/questions/54791140/error-stopping-due-to-error-org-apache-kafka-connect-cli-connectstandalone-jav), i have these jars:
我还在%PATH%中添加了插件路径,如下所示:
echo %PATH% | findstr debezium
XXX;C:\Users\用户名\Downloads\kafka\libs\debezium;
Help
任何帮助将不胜感激,因为我希望用这个 debezium 连接器替换我的数据库轮询,这似乎是更好的方法。谢谢!