我有一个问题,试图运行kafka connect与postgres debezium连接器,而使用docker,它找不到一个特定的类,位于一个debezium-core的jar。
我已经下载了debezium postgres插件,并将其内容复制到我定义的plugin.path路径(/kafka/plugins)中。
即使kafka connect首先加载debezium内核和api,错误仍然会出现。
这是日志:
kafka-connect_1 | [2020-08-13 14:06:13,543] INFO Scanning for plugin classes. This might take a moment ... (org.apache.kafka.connect.cli.ConnectDistributed)
kafka-connect_1 | [2020-08-13 14:06:13,564] INFO Loading plugin from: /kafka/plugins/debezium-api-1.3.0.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,628] INFO Registered loader: PluginClassLoader{pluginLocation=file:/kafka/plugins/debezium-api-1.3.0.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,628] INFO Added plugin 'org.apache.kafka.connect.connector.policy.AllConnectorClientConfigOverridePolicy' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,628] INFO Added plugin 'org.apache.kafka.connect.connector.policy.PrincipalConnectorClientConfigOverridePolicy' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,629] INFO Added plugin 'org.apache.kafka.connect.connector.policy.NoneConnectorClientConfigOverridePolicy' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,629] INFO Loading plugin from: /kafka/plugins/debezium-core-1.3.0.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,762] INFO Registered loader: PluginClassLoader{pluginLocation=file:/kafka/plugins/debezium-core-1.3.0.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,762] INFO Added plugin 'io.debezium.converters.ByteBufferConverter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,762] INFO Added plugin 'io.debezium.converters.CloudEventsConverter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Added plugin 'io.debezium.transforms.outbox.EventRouter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Added plugin 'io.debezium.transforms.ExtractNewRecordState' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Added plugin 'io.debezium.transforms.ContentBasedRouter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Added plugin 'io.debezium.transforms.ByLogicalTableRouter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Added plugin 'io.debezium.transforms.Filter' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,763] INFO Loading plugin from: /kafka/plugins/protobuf-java-3.8.0.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,879] INFO Registered loader: PluginClassLoader{pluginLocation=file:/kafka/plugins/protobuf-java-3.8.0.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,879] INFO Loading plugin from: /kafka/plugins/debezium-connector-postgres-1.3.0.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader)
kafka-connect_1 | [2020-08-13 14:06:13,917] ERROR Stopping due to error (org.apache.kafka.connect.cli.ConnectDistributed)
kafka-connect_1 | java.lang.NoClassDefFoundError: io/debezium/util/IoUtil
kafka-connect_1 | at io.debezium.connector.postgresql.Module.<clinit>(Module.java:19)
kafka-connect_1 | at io.debezium.connector.postgresql.PostgresConnector.version(PostgresConnector.java:47)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.versionFor(DelegatingClassLoader.java:380)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.versionFor(DelegatingClassLoader.java:385)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.getPluginDesc(DelegatingClassLoader.java:355)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanPluginPath(DelegatingClassLoader.java:328)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.scanUrlsAndAddPlugins(DelegatingClassLoader.java:261)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.registerPlugin(DelegatingClassLoader.java:253)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initPluginLoader(DelegatingClassLoader.java:222)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader.initLoaders(DelegatingClassLoader.java:199)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.Plugins.<init>(Plugins.java:60)
kafka-connect_1 | at org.apache.kafka.connect.cli.ConnectDistributed.startConnect(ConnectDistributed.java:91)
kafka-connect_1 | at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:78)
kafka-connect_1 | Caused by: java.lang.ClassNotFoundException: io.debezium.util.IoUtil
kafka-connect_1 | at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
kafka-connect_1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
kafka-connect_1 | at org.apache.kafka.connect.runtime.isolation.PluginClassLoader.loadClass(PluginClassLoader.java:104)
kafka-connect_1 | at java.lang.ClassLoader.loadClass(ClassLoader.java:357)我已经尝试了我在stackoverflow和其他网站上发现的其他问题中提出的不同解决方案,似乎都没有帮助,原因是一些插件被识别并成功加载,但debezium-connect-postgres插件却没有...
有没有解决这个问题的办法?谢谢!
发布于 2020-08-14 02:59:57
解决方案是将整个文件夹原样复制到容器中,而不是将每个文件都复制到插件路径中。
在我的docker文件中:不执行COPY ./docker/kafka-connect/debezium-connector-postgres /kafka/plugins,
我将包含插件的debezium-connector-postgres文件夹放入另一个名为connectors的文件夹中,该文件夹位于./docker/中,然后该操作对COPY ./docker/kafka-connect/connectors /kafka/plugins执行了更改,从而在容器的/kafka/plugins中创建了一个新文件夹。
https://stackoverflow.com/questions/63397348
复制相似问题