我正在尝试将kafka与windows上的mysql连接起来。我没有使用汇合。我的 kafka 版本是 2.12 我已经启动了动物园管理员、卡夫卡、生产者和消费者,这一切都很好用。
我的 MysQL 版本是 8.0.15
我已经在libs文件夹中复制了这3个jar文件
mysql-connector-java-8.0.15.jar
mysql-connector-java-5.1.47.jar
mysql-connector-java-5.1.47-bin.jar
我的源代码-快速入门-mysql.properties文件代码是
name=test-source-mysql-jdbc-autoincrement connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
connection.url=jdbc:mysql://localhost:3306/databasename?
user=rootname&password=password
mode=incrementing
incrementing.column.name=ID
topic.prefix=my-replicated-topic-table1
当我运行命令时
connect-standalone.bat ....configconnect-standalone.properties ....configsource-quickstart-mysql.properties
我在控制台上收到此错误
[2019-03-26 16:16:39,524] 错误 无法为 ....\config\source-quickstart-mysql.properties 创建作业 (org.apache.kafka.connect.cli.ConnectStandalone) [2019-03-26 16:16:39,524]错误 连接器错误后停止 (org.apache.kafka.connect.cli.ConnectStandalone) java.util.concurrent.ExecutionException: org.apache.kafka.connect.errors.ConnectException: 未能找到任何 实现连接器的类以及名称匹配的类 io.confluent.connect.jdbc.JdbcSourc eConnector,可用的连接器有:PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', 版本='2.1.0', 编码 edVersion=2.1.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSource 连接器', 版本='2.1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', 位置='类路径'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.co nnect.tools.MockConnector', version='2.1.0', encodedVersion=2.1.0, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connect.tools.MockSinkConnector', version='2.1.0', encodedVersion=2.1.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tool s.MockSourceConnector, name='org.apache.kafka.connect.tools.MockSourceConnector', 版本='2.1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', location='classpath'}, PluginDesc{klass=class o rg.apache.kafka.connect.tools.SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', 版本='2.1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', 位置='类 path'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector', 版本='2.1.0', 编码版本=2.1.0, 类型=源 , typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', 版本='2 .1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', 位置='类路径'} at org.apache.kafka.connect.util.ConvertingFutureCallback.result(ConvertingFutureCallback.java:79) at org.apache.kafka.connect.util.ConvertingFutureCallback.get(ConvertingFutureCallback.java:66) at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:110) 由以下原因引起:org.apache.kafka.connect.errors.ConnectException:找不到任何 实现连接器的类以及名称匹配的类 io.confluent.connect.jdbc.JdbcSourceConnector, available connecto rs are: PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSinkConnector, name='org.apache.kafka.connect.file.FileStreamSinkConnector', 版本='2.1.0', 编码版本=2.1.0, 类型=接收器, ty peName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.file.FileStreamSourceConnector, name='org.apache.kafka.connect.file.FileStreamSourceConnector', 版本='2.1.0', e ncodedVersion=2.1.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockConnector, name='org.apache.kafka.connect.tools.MockConnector', ve rsion='2.1.0', encodedVersion=2.1.0, type=connector, typeName='connector', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSinkConnector, name='org.apache.kafka.connec t.tools.MockSinkConnector', version='2.1.0', encodedVersion=2.1.0, type=sink, typeName='sink', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.MockSourceConnector, name='o rg.apache.kafka.connect.tools.MockSourceConnector', version='2.1.0', encodedVersion=2.1.0, type=source, typeName='source', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools. SchemaSourceConnector, name='org.apache.kafka.connect.tools.SchemaSourceConnector', 版本='2.1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', location='classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSinkConnector, name='org.apache.kafka.connect.tools.VerifiableSinkConnector',版本='2.1.0', 编码版本=2.1.0, 类型=源, 类型名称='源', 位置= 'classpath'}, PluginDesc{klass=class org.apache.kafka.connect.tools.VerifiableSourceConnector, name='org.apache.kafka.connect.tools.VerifiableSourceConnector', 版本='2.1.0', 编码版本=2.1.0, t ype=源, 类型名称='源', 位置='类路径'} at org.apache.kafka.connect.runtime.isolation.Plugins.newConnector(Plugins.java:179) at org.apache.kafka.connect.runtime.AbstractHerder.getConnector(AbstractHerder.java:382) at org.apache.kafka.connect.runtime.AbstractHerder.validateConnectorConfig(AbstractHerder.java:261) at org.apache.kafka.connect.runtime.standalone.StandaloneHerder.putConnectorConfig(StandaloneHerder.java:189) at org.apache.kafka.connect.cli.ConnectStandalone.main(ConnectStandalone.java:107)
请帮助我。
我也尝试过这篇文章,但没有使用命令生成输出 bin/confluent load jdbc-source -d jdbc-source.properties https://supergloo.com/kafka-connect/kafka-connect-mysql-example/
你的错误是
org.apache.kafka.connect.errors.ConnectException: Failed to find any class that
implements Connector and which name matches io.confluent.connect.jdbc.JdbcSourceConnector
既然你说你没有使用Confluent平台,这是有道理的,因为kafka-connect-jdbc不是Apache Kafka的一部分。您可以使用 Confluent 平台、从源代码构建连接器,也可以在 http://hub.confluent.io 下载连接器。
如果在 kafka lib path 中添加 kafka-connect-jdbc-5.5.1.jar 并重新启动 Kafka Zookeeper 和服务器。您应该能够连接。
您可以在 https://www.confluent.io/hub/confluentinc/kafka-connect-jdbc 下载Kafka Connect JDBC,它是免费的,无需Confluent Platform即可使用。解压缩后,更新 confluentinc-kafka-connect-jdbc-5.5.1.jar 的位置,以获取已安装的 Apache Kafka 的配置目录中可用的 connect-standalone.properties 中的密钥插件.path。再次运行脚本后,错误将消失。