我遵循 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 安装。我在这里缺少什么?
对于 confluence-7.2.2,FileStreamSource 连接器位于文件夹
/share/filestream-connectors
中。将其添加到我的plugin.path
对我有用。
这个答案基于 @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
文件。
看:
./bin/kafka-run-class.sh:regex="(-(test|test-sources|src|scaladoc|javadoc).jar|jar.asc|connect-file.*.jar)$”
我不知道详细信息,但是 connect-file 被排除在类路径中。只需编辑 kafka-run-class.sh 对我来说就成功了。
只需添加
plugin.path=libs/connect-file-3.4.0.jar
在您的 config/connect-standalone.properties 文件中。