Sql server Kafka Connect For MSSQL无效值java.sql.SQLException:找不到适合配置的驱动程序
我正在尝试使用Sql server Kafka Connect For MSSQL无效值java.sql.SQLException:找不到适合配置的驱动程序,sql-server,apache-kafka,apache-kafka-connect,Sql Server,Apache Kafka,Apache Kafka Connect,我正在尝试使用localhost:3030将kafka connect连接到我的本地mssql 我在尝试为mssql建立新连接时收到此错误。在centos 7(linux)中。Mssql数据来自外部IP(windows),我的消费者在linux环境中 “未找到适合配置的驱动程序” 连接分布式。属性如下所示 plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors, 我在/opt/connec
localhost:3030将kafka connect连接到我的本地mssql
我在尝试为mssql建立新连接时收到此错误。在centos 7(linux)中。Mssql数据来自外部IP(windows),我的消费者在linux环境中
“未找到适合配置的驱动程序”
连接分布式。属性
如下所示
plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors,
我在/opt/connectors/kafka connect jdbc/
下添加了“ojdbc7-12.1.0.2.jar”
文件,但仍然收到错误消息。我不知道怎么了
还有我的connect-console-source.properties
name=source-sqlserver-user
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
tasks.max=1
topic.prefix=my-timestamp
connection.url=jdbc:sqlserver://externalIP;database=database;username=username;password=password
ojdbc7-12.1.0.2.jar
是Oracle的JDBC驱动程序
对于MS SQL,您需要
编辑:因为您使用Docker运行Kafka Connect,所以需要在运行之前使Kafka Connect工作程序可以使用JDBC JAR文件。您不能只运行Docker容器并将JDBC驱动程序复制到其中,因为您需要在之后重新启动Kafka Connect
为了解决这个问题,您可以将JAR从本地机器装载到容器中的相关路径。相关路径是Kafka Connect JDBC jar所在的位置。查看它所在的fast data dev
图像
root@fast-data-dev / $ ls -l /opt/confluent-3.3.0/share/java/kafka-connect-jdbc
total 6544
-rw-r--r-- 1 root root 133842 Jul 28 2017 kafka-connect-jdbc-3.3.0.jar
-rw-r--r-- 1 root root 658466 Jul 28 2017 postgresql-9.4-1206-jdbc41.jar
-rw-r--r-- 1 root root 5575351 Jul 28 2017 sqlite-jdbc-3.8.11.2.jar
这样你就可以跑了
docker run --rm --net=host --volume ~/Downloads/mssql-jdbc-7.4.1.jre8.jar:/opt/confluent-3.3.0/share/java/kafka-connect-jdbc/mssql-jdbc-7.4.1.jre8.jar landoop/fast-data-dev:cp3.3.0
或者使用卷
配置将其装载到Docker Compose中:
version: '2'
services:
kafka-cluster:
image: landoop/fast-data-dev:cp3.3.0
environment:
ADV_HOST: 127.0.0.1
RUNTESTS: 0
ports:
- 2181:2181 # Zookeeper
- 3030:3030 # Landoop UI
- 8081-8083:8081-8083 # REST Proxy, Schema Registry, Kafka Connect ports
- 9581-9585:9581-9585 # JMX Ports
- 9092:9092 # Kafka Broker
volumes:
- ~/Downloads/mssql-jdbc-7.4.1.jre8.jar:/opt/confluent-3.3.0/share/java/kafka-connect-jdbc/mssql-jdbc-7.4.1.jre8.jar
值得注意的是,Confluent Platform 3.3.0非常古老,最新版本是5.3.1。如果您想查看使用JDBC驱动程序自动设置运行Kafka、Kafka Connect、SQL Server等的最新示例,请参见。是否需要添加新文件夹/opt/connectors/Kafka Connect mssql JDBC/No,只需将MS SQL JDBC jar放在Kafka Connect JDBC
下,就像处理另一个文件夹一样,仍然显示相同的错误消息。我在kafka connect jdbc下添加了mssql-jdbc-7.4.1.jre12.jar
。但是,如果您使用Docker Compose,是否需要在此路径下添加/opt/confluent-3.3.0/share/java/kafka-connect-jdbc/
或/opt/connectors/kafka-connect-jdbc/
,您如何安装jdbc驱动程序?我编辑了答案以显示如何安装jdbc JAR进入你的docker容器。为什么不使用该容器的更新版本?我如何更新它?查看docker映像的标记如果数据库位于远程服务器上,为什么要使用127.0.0.1?我以为那是Kafkanconnect IP地址。
version: '2'
services:
kafka-cluster:
image: landoop/fast-data-dev:cp3.3.0
environment:
ADV_HOST: 127.0.0.1
RUNTESTS: 0
ports:
- 2181:2181 # Zookeeper
- 3030:3030 # Landoop UI
- 8081-8083:8081-8083 # REST Proxy, Schema Registry, Kafka Connect ports
- 9581-9585:9581-9585 # JMX Ports
- 9092:9092 # Kafka Broker
volumes:
- ~/Downloads/mssql-jdbc-7.4.1.jre8.jar:/opt/confluent-3.3.0/share/java/kafka-connect-jdbc/mssql-jdbc-7.4.1.jre8.jar