ERROR Parando devido a erro (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io / debezium / util / IoUtil

Sep 23 2020

Objetivo

Estou tentando me conectar ao meu banco de dados Oracle (12c) do Kafka Connect (de preferência no modo distribuído) usando o conector Debezium (1.2.4.Final). A versão Kafka que estou usando é 2.13-2.6.0.

Comando usado

Conforme mencionado aqui , estou executando este comando:

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

Erro

O erro que estou recebendo é:

ERROR Parando devido a erro (org.apache.kafka.connect.cli.ConnectDistributed) java.lang.NoClassDefFoundError: io / debezium / util / IoUtil em io.debezium.connector.oracle.Module. (Module.java:19) em io.debezium.connector.oracle.OracleConnector.version (OracleConnector.java:23) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.versionFor (DelegatingClassLoader.java:390) em org.apache.kafka.connect. runtime.isolation.DelegatingClassLoader.versionFor (DelegatingClassLoader.java:395) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.getPluginDesc (DelegatingClassLoader.java:365) em org.apache.kafka. DelegatingClassLoader.scanPluginPath (DelegatingClassLoader.java:337) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins (DelegatingClassLoader.java:337) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins (DelegatingClassLoader.java:337) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins (DelegatingClassLoader.java:268.connect. DelegatingClassLoader.java:260) em org.apache.kafka.connect.runtime.isola tion.DelegatingClassLoader.initPluginLoader (DelegatingClassLoader.java:229) em org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders (DelegatingClassLoader.java:206) em org.apache.kafka.connect. (Plugins.java:61) em org.apache.kafka.connect.cli.ConnectDistributed.startConnect (ConnectDistributed.java:91) em org.apache.kafka.connect.cli.ConnectDistributed.main (ConnectDistributed.java:78) Causado por: java.lang.ClassNotFoundException: io.debezium.util.IoUtil em java.net.URLClassLoader.findClass (URLClassLoader.java:382) em java.lang.ClassLoader.loadClass (ClassLoader.java:418) em org.apache. kafka.connect.runtime.isolation.PluginClassLoader.loadClass (PluginClassLoader.java:104) em java.lang.ClassLoader.loadClass (ClassLoader.java:351) ... 13 mais

Configurações

Em meu connect-distributed.properties, eu tenho este:

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

E dentro da pasta debezium (seguindo a recomendação de Gunnar do comentário desta questão ), eu tenho estes frascos:

Também adicionei o caminho do plug-in em% PATH% da seguinte maneira:

echo %PATH% | findstr debezium

XXX; C: \ Usuários \ nome de usuário \ Downloads \ kafka \ libs \ debezium;

Socorro

Qualquer ajuda seria muito apreciada, pois espero substituir minha pesquisa de banco de dados por este conector debezium que parece uma abordagem melhor. Obrigado!

Respostas

1 jumping_monkey Sep 23 2020 at 10:45

A solução do Gunnar aqui funciona! (Sua explicação está lá também, se você quiser dar uma olhada.)

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

e isso também funciona:

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

O erro é: plugin.pathdeve ser até libs e não libs / debezium