Kafka Connect中未找到适合的jdbc:mysql驱动程序。

5

connect-standalone.properties

connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
bootstrap.servers=10.33.62.20:9092,10.33.62.110:9092,10.33.62.200:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true

offset.storage.file.filename=/tmp/connect.offsets
offset.flush.interval.ms=10000
plugin.path=/grid/1/mukul/confluent-5.0.0/share/java

source-sqlite.properties

name=test-source-sqlite-jdbc-autoincrement
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=5

connection.url=jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxxx

table.whitelist=banner_hourly_statistics_v2

group.id=test-mysql-kafka
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter

config.storage.topic=demo-1-distributed-config
offset.storage.topic=demo-1-distributed-offset
status.storage.topic=demo-1-distributed-status

bootstrap.servers=10.33.62.20:9092,10.33.62.110:9092,10.33.62.200:9092
mode=bulk
#incrementing.column.name=id
topic.prefix=test-sqlite-jdbc-

CMD: connect-standalone /grid/1/mukul/confluent-5.0.0/etc/kafka/connect-standalone.properties /grid/1/mukul/confluent-5.0.0/etc/kafka-connect-jdbc/source-quickstart-sqlite.properties

在启动日志中,明确显示加载JDBC连接器:

[2018-08-09 06:59:30,072] INFO Loading plugin from: /grid/1/mukul/confluent-5.0.0/share/java/kafka-connect-jdbc (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:218)
[2018-08-09 06:59:30,133] INFO Registered loader: PluginClassLoader{pluginLocation=file:/grid/1/mukul/confluent-5.0.0/share/java/kafka-connect-jdbc/} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:241)
[2018-08-09 06:59:30,133] INFO Added plugin 'io.confluent.connect.jdbc.JdbcSinkConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:170)
[2018-08-09 06:59:30,133] INFO Added plugin 'io.confluent.connect.jdbc.JdbcSourceConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:170)

但是它会出现以下异常:
Invalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx for configuration Couldn't open connection to jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxx
Invalid value java.sql.SQLException: No suitable driver found for jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx for configuration Couldn't open connection to jdbc:mysql://10.32.177.178:3306/test&user=xxxx&password=xxxx
You can also find the above list of errors at the endpoint `/{connectorType}/config/validate`
    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)

尝试更改插件目录,但不起作用。也尝试将confluent share/*移动到/usr/share/java,但也不起作用。

2个回答

2

你指的是哪个插件目录?我如何确定正在使用哪个目录? - Valerian Pereira
1
@ValerianPereira:你需要将Jar文件复制到plugin.path=share/java目录中,就像etc/kafka/connect-distributed.properties文件中所述。 - mukul
或者您可以在独立模式下使用etc/kafka/connect-standalone.properties文件中存在的plugin.path配置。 - mukul
谢谢@mukul的帮助,我已经解决了这个问题。JAR包已放置在share/java目录中,但是我忘记重启服务,以使更改生效。 - Valerian Pereira

1

可能有点晚。当我使用kafka jdbc连接器连接DB2时,遇到“未找到驱动程序”的相同问题。

第一种可能的解决方案:

我通过将DB2驱动程序放置在jdbc-connector所在的确切位置来解决它。 在Kafka connect中:

find / -name kafka-connect-jdbc\*.jar

一旦你从上面的命令中找到位置,就把DB2 jar复制到那个位置:

cp {your DB2 jar location}/db2.jar {copy the location from 'find' command}

例子

cp /Download/db2.jar /Users/share/java/kafka-connect-java/

重新启动kafka-connect,它会获取DB2驱动程序。

第二种可能的解决方案:

下载jt400 jar(jdk-8),并将其放置在其他jdbc驱动程序(DB2,SQL等)旁边。

愉快的编码:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接