当前位置: 首页 > 知识库问答 >
问题:

kafka connect jdbc:SQLException:只有在使用分布式模式时才没有合适的驱动程序

厍兴腾
2023-03-14

我们已经成功地使用 mySQL - 使用 jdbc 独立连接器的 kafka 数据摄取,但现在在分布式模式下使用相同的连接器(作为 kafka 连接服务)时面临问题。

connect-distributed.properties档案-

bootstrap.servers=IP1:9092,IP2:9092
group.id=connect-cluster
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.topic=connect-offsets
offset.storage.replication.factor=2
config.storage.topic=connect-configs
config.storage.replication.factor=2
status.storage.topic=connect-status
status.storage.replication.factor=2
offset.flush.interval.ms=10000
plugin.path=/usr/share/java,/usr/share/java/kafka-connect-jdbc

我有我的连接器罐在这里-

/usr/share/java/kafka-connect-jdbc

-rw-r--r-- 1 root root  906708 Jul 29 01:18 zookeeper-3.4.13.jar
-rw-r--r-- 1 root root   74798 Jul 29 01:18 zkclient-0.10.jar
-rw-r--r-- 1 root root 5575351 Jul 29 01:18 sqlite-jdbc-3.8.11.2.jar
-rw-r--r-- 1 root root   41203 Jul 29 01:18 slf4j-api-1.7.25.jar
-rw-r--r-- 1 root root  658466 Jul 29 01:18 postgresql-9.4-1206-jdbc41.jar
-rw-r--r-- 1 root root 1292696 Jul 29 01:18 netty-3.10.6.Final.jar
-rw-r--r-- 1 root root  489884 Jul 29 01:18 log4j-1.2.17.jar
-rw-r--r-- 1 root root  211219 Jul 29 01:18 kafka-connect-jdbc-5.0.0.jar
-rw-r--r-- 1 root root  317816 Jul 29 01:18 jtds-1.3.1.jar
-rw-r--r-- 1 root root   87325 Jul 29 01:18 jline-0.9.94.jar
-rw-r--r-- 1 root root   20844 Jul 29 01:18 common-utils-5.0.0.jar
-rw-r--r-- 1 root root   20437 Jul 29 01:18 audience-annotations-0.5.0.jar
-rw-r----- 1 root root 2132635 Nov 11 16:31 mysql-connector-java-8.0.13.jar

我可以通过以这种方式运行脚本来运行独立模式-

/usr/bin/connect-standalone /etc/kafka/connect-standalone.properties /etc/kafka-connect-jdbc/source-quickstart-mysql.properties

但是当我尝试调用 REST API 来运行分布式模式连接器时,出现错误:

curl -X POST -H "Accept:application/json" -H "Content-Type:application/json" X.X.X.X:8083/connectors/ -d '{"name": "linuxemp-connector", "config": { "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector", "tasks.max": "1", "connection.url": "jdbc:mysql://Y.Y.Y.Y:3306/linux_db?user=groot&password=pwd","table.whitelist": "emp","mode": "timestamp","incrementing.column.name":"empid","topic.prefix": "mysqlconnector-" } }'

错误-

{"error_code":400,"message":"Connector configuration is invalid and contains the following 2 error(s):\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://Y.Y.Y.Y:3306/linux_db?user=groot&password=pwd for configuration Couldn't open connection to jdbc:mysql://Y.Y.Y.Y:3306/linux_db?user=groot&password=pwd\nInvalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://Y.Y.Y.Y:3306/linux_db?user=groot&password=pwd for configuration Couldn't open connection to jdbc:mysql://Y.Y.Y.Y:3306/linux_db?user=groot&password=pwd\nYou can also find the above list of errors at the endpoint `/{connectorType}/config/validate`"}

注意 - 连接器 jar 放置在所有连接节点上,plugin.path 在所有连接节点上相同,Kafka-Connect 服务已启动并运行。

我错过了什么?为什么我无法提交REST调用来启动此mysql管道的分布式连接工作器/任务?这在独立模式下绝对有效。但是在分布式模式下抛出错误。

请帮帮忙!

谢谢!

共有3个答案

单于奕
2023-03-14

我在使用conFluent使用kafka连接到mysql数据库时遇到了同样的问题。我安装了ubuntu 16.04。以下是重要路径

1-< code >/etc/kafka -所有需要的Kafka属性文件,在这里你会找到connect-单机和connect分布式属性文件,你可以编辑它们来加载插件。

2-/usr/share/java所有连接器都驻留在这里。

mysql 连接器应该在 /usr/share/java/kafka-connect-jdbc/ 一个 jar 文件中,可以从这里下载或检查其他版本。确保2点中提到的文件夹的权限合适。

在完成上述步骤后,请确保重新启动kafka,或者在我的情况下,它是汇合。我停止汇流-汇流停止,然后汇合开始

以下是帮助我的外部资源。

唐焕
2023-03-14

我解决了为驱动程序指定类路径的问题,如下所示:

CLASSPATH=/Users/christian/kafka/confluent-5.3.1/share/java/kafka-connect-jdbc/mysql-connector-java-8.0.18.jar connect-standalone.sh worker.properties etc/kafka-connect-jdbc/mysql-jdbc-fp.properties
红存
2023-03-14

通过解决以下问题,问题得以解决-

1.将 /usr/share/java/kafka-connect-jdbc/mysql-connector-java-8.0.13.jar 的权限更改为 755 2.插件路径中仅保留 /usr/share/java。

3.更改我的sql表结构,使其具有一个主键和一个具有增量性质或时间戳的列属性。

 类似资料:
  • 我正在尝试运行Selenium测试。我正在使用C#。我试过的每个司机都有问题。 看起来像是chromedriver。已找到exe,但它可以找到Chrome二进制文件。我设置了通往chrome的路径。自动搜索失败后显式执行。我甚至在最后用“chrome.exe”试过了。我总是得到同样的结果: 在以下位置找不到Chrome二进制文件: C:\用户\Vilem\AppData\本地\谷歌\Chrome\

  • 我正在使用JDBC接收器连接器尝试Kafka和Postgres接收器。 例外: 水槽特性: 我已经设置了< code > plugin . path =/usr/share/Java/Kafka-connect-JDBC /usr/share/java/kafka-connect-jdbc我有以下文件: , , 和其他一些基本上与汇合物一起打包的罐子。 然后我下载了 postgres-jdbc 驱

  • 当我创建kafka jdbc源连接器(debezium连接器用于带有confluent-5.4.0的oracle)时,出现错误“没有找到适合jdbc: oracle: oci…”。 我的oracle版本是企业版发布11.2.0.4.0-64位生产,我尝试了不同的驱动程序jar,但得到了相同的异常。 我的jdk版本是: 我已经将 debezium-连接器-预言机添加到文件夹融合-5.4.0/shar

  • 我创建了一个maven项目。 我正在尝试将MSSQL(Microsoft SQL Server 2014)与我的J2EE应用程序连接起来。但它引发了以下异常 我的代码: 网状物xml 登记 数据库连接 上下文xml

  • 试图连接到允许远程连接的免费mysql数据库主机,但我遇到了以下错误: 未找到适合jdbc的驱动程序:mysql://xx2-23-x1-2x1-172.compuxe-1.xmazonaws.com:3306 我使用下面的代码。 编辑 Stack Trace显示在下面:

  • 我已经创建了一个运行在Tomcat 7上的基本的Spring 3.1-Hibernate 4-Mysql 5.5 web应用程序。我通过spring C3PO共享连接。 更新:我也在发布我的代码。 我的Spring应用程序上下文: 如您所见,我为池使用了C3PO数据源,由spring容器管理。 我的属性文件(从spring容器引用): 以下是我的POM依赖项: 我的web.xml是一个标准的Spr