即使在 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 也找不到连接器插件的主要内容,如果未能解决你的问题,请参考以下文章
无法访问在 Docker 中配置的 wordpress,即使其状态正在运行