找不到任何实现连接器且名称与 FileStreamSource 匹配的类

问题描述 投票:0回答:5

我遵循 Kafka 快速入门指南。不过,我被困在第 6 步,将数据作为事件流导入/导出...

https://kafka.apache.org/documentation/

该错误表明Kafka找不到连接器。我已通过多种方式将其添加到 connect-standalone.properties 文件中。这是我目前的情况。

plugin.path=/home/ben/kafka/kafka_2.12-3.2.0/lib/connect-file-3.2.0.jar

我还尝试仅指向 libs 文件夹。

我停止了服务和服务器,然后按照指南的指示重新启动了它们。然后我尝试启动两个连接器来读取和写入文件。

bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties

但它无法启动,并给我这个错误。

[2022-06-18 18:06:16,006] ERROR Failed to create job for config/connect-file-source.properties (org.apache.kafka.connect.cli.ConnectStandalone:107)
[2022-06-18 18:06:16,020] ERROR Stopping after connector error (org.apache.kafka.connect.cli.ConnectStandalone:117)
java.util.concurrent.ExecutionException: org.apache.kafka.connect.errors.ConnectException: Failed to find any class that implements Connector and which name matches FileStreamSource, available connectors are: PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorCheckpointConnector, name='org.apache.kafka.connect.mirror.MirrorCheckpointConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorHeartbeatConnector, name='org.apache.kafka.connect.mirror.MirrorHeartbeatConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.mirror.MirrorSourceConnector, name='org.apache.kafka.connect.mirror.MirrorSourceConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='3.2.0', encodedVersion=3.2.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', version='3.2.0', encodedVersion=3.2.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', version='3.2.0', encodedVersion=3.2.0, type=source, typeName='source', location='classpath'}

所以看来我没有正确地将属性指向连接器,尽管在我尝试过的各种方法中,我也尝试了指南指示的相对路径。

这是运行 Java 11 的新 Ubuntu 安装。我在这里缺少什么?

apache-kafka apache-kafka-connect
5个回答
1
投票

对于 confluence-7.2.2,FileStreamSource 连接器位于文件夹

/share/filestream-connectors
中。将其添加到我的
plugin.path
对我有用。


1
投票

这个答案基于 @John 的答案,为那些在 macOS Ventura 上通过 Homebrew 安装 Kafka 时遇到此问题的人提供参考。对于上下文,我在尝试运行

Kafka in Action
第 3 章中的 FileStreamSource 连接器示例时遇到了此错误。为了解决这个问题,我复制了文件
opt/homebrew/opt/kafka/libexec/config/connect-standalone.properties
,编辑新文件以添加额外的
plugin.path=/opt/homebrew/opt/kafka/libexec/libs
键值对,然后在我的
connect-standalone
上调用
PATH
二进制文件并编辑该文件属性文件作为第一个参数,而不是我的 Kafka 安装的默认
connect-standalone.properties
文件。


0
投票

看:

./bin/kafka-run-class.sh:regex="(-(test|test-sources|src|scaladoc|javadoc).jar|jar.asc|connect-file.*.jar)$”

我不知道详细信息,但是 connect-file 被排除在类路径中。只需编辑 kafka-run-class.sh 对我来说就成功了。


0
投票

只需添加

plugin.path=libs/connect-file-3.4.0.jar

在您的 config/connect-standalone.properties 文件中。


© www.soinside.com 2019 - 2024. All rights reserved.