即使在 worker.properties 中配置 plugin.path 后,Kafka 也找不到连接器插件

Posted

技术标签:

【中文标题】即使在 worker.properties 中配置 plugin.path 后,Kafka 也找不到连接器插件【英文标题】:Kafka cannot find connector plugins even after configuring plugin.path in worker.properties 【发布时间】:2020-06-18 09:03:50 【问题描述】:

我正在尝试在 Windows 上的 kafka 中配置 sqlserver debezium 连接器,为此我已从 here 下载连接器并在 C:\kafka_2.11-2.4.0 位置设置 kafka

在其中创建了一个名为 plugins 的文件夹 C:\kafka_2.11-2.4.0\plugins 并将下载的 jar 复制到 plugins 文件夹中。

之后在 config 文件夹中创建 worker.properties 和 sqlserverconnector.properties 文件,配置如下

worker.properties 配置

offset.storage.file.filename=/tmp/connect.offsets 
bootstrap.servers=localhost:9092 
offset.flush.interval.ms=10000
#rest.port=10082
#rest.host.name=localhost
#rest.advertised.port=10082
#rest.advertised.host.name=<hostname> 
internal.key.converter=org.apache.kafka.connect.json.JsonConverter 
internal.value.converter=org.apache.kafka.connect.json.JsonConverter 
internal.key.converter.schemas.enable=false 
internal.value.converter.schemas.enable=false 
key.converter=org.apache.kafka.connect.json.JsonConverter 
value.converter=org.apache.kafka.connect.json.JsonConverter 
plugin.path=c:\kafka_2.11-2.4.0\plugins
#If kafka is TLS authenticated, uncomment below lines.
#security.protocol=SSL 
#ssl.truststore.location=/tmp/kafka.client.truststore.jks
#producer.security.protocol=SSL
#producer.ssl.truststore.location=/tmp/kafka.client.truststore.jks

sqlserverconnector.properties

name=sql-server-connection
connector.class=io.debezium.connector.sqlserver.SqlServerConnector
database.hostname=localhost
database.port=1433
database.user=sa
database.password=Passw0rd
database.dbname=CDCTestDB
#database.server.name=<Assign any name>
#table.whitelist=<schema_name.table_name>
database.history.kafka.bootstrap.servers=localhost:9092
database.history.kafka.topic=test
#If kafka is TLS authenticated, uncomment below lines.
#database.history.producer.security.protocol=SSL
#database.history.producer.ssl.truststore.location=/tmp/kafka.client.truststore.jks

还为文件夹配置了 connect.standalone plugin.path 属性。

当我尝试使用以下命令运行连接器时

C:\kafka_2.11-2.4.0\bin\windows>独立连接 ../../config/worker.properties ../../config/sqlserverconnector.properties

我收到以下消息

 Failed to find any class that implements Connector and which name matches io.debezium.connector.sqlserver.SqlServerConnector 

complete error details in this image

如果我尝试使用以下命令运行 connect-standalone.sh,则会出现一个新的命令提示符窗口并且没有任何反应,它会在一段时间后关闭。

C:\kafka_2.11-2.4.0\bin>connect-standalone.sh ../config/worker.properties ../config/sqlserverconnector.properties

谁能帮我找出可能的问题并正确配置..

【问题讨论】:

见***.com/a/53430662 我尝试了链接中的选项,现在我的插件目录看起来像 C:\kafka_2.11-2.4.0\plugins\sqlserverconnectordirect,得到同样的错误 @MaheshGupta 你有什么发现吗? 【参考方案1】:

您不能将 Debezium 连接器 JAR 放到 plugins.dir 中,而是放到该目录的子目录中。所以如果 plugins.dir 是 c:\connect 那么你应该有 c:\connect\debezium-connector-sqlserver

【讨论】:

即使配置正确,问题仍然存在。

以上是关于即使在 worker.properties 中配置 plugin.path 后,Kafka 也找不到连接器插件的主要内容,如果未能解决你的问题,请参考以下文章

为Microsoft IIS配置ISAPI重定向器

无法访问在 Docker 中配置的 wordpress,即使其状态正在运行

即使从配置文件中删除了 UDID,iOS 应用程序仍在安装到设备中

即使在配置后也无法登录到 phpMyAdmin

JAVA 分布式

缺少 mysqli 扩展。请检查您的 PHP 配置,即使文件在定义的路径中可用