[英]Kafka-Connect For MSSQL Invalid value java.sql.SQLException: No suitable driver found for for configuration
I am trying to connect kafka-connect to my local mssql with localhost:3030
I am receiving this error when I try to make a new connection for mssql.我正在尝试使用
localhost:3030
将 kafka-connect 连接到我的本地 mssql 当我尝试为 mssql 建立新连接时收到此错误。 in centos 7(linux).在centos 7(linux)中。 Mssql data is from an external IP(windows), my consumer is inside of linux environment.
Mssql 数据来自外部 IP(windows),我的消费者在 linux 环境中。
"No suitable driver found for configuration".
“找不到适合配置的驱动程序”。
connect-distributed.properties
is shown below; connect-distributed.properties
如下所示;
plugin.path=/usr/local/share/java,/usr/local/share/kafka/plugins,/opt/connectors,
I added "ojdbc7-12.1.0.2.jar"
file under /opt/connectors/kafka-connect-jdbc/
but still I am receiving error messages.我在
/opt/connectors/kafka-connect-jdbc/
下添加了"ojdbc7-12.1.0.2.jar"
文件,但仍然收到错误消息。 I dont know what is wrong.我不知道出了什么问题。
Also my connect-console-source.properties还有我的 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
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
ojdbc7-12.1.0.2.jar
is the JDBC driver for Oracle. ojdbc7-12.1.0.2.jar
是 Oracle 的 JDBC 驱动程序。
For MS SQL you need the MS SQL JDBC driver对于 MS SQL,您需要MS SQL JDBC 驱动程序
Edit: Since you're using Docker to run Kafka Connect, you need to make the JDBC JAR file available to the Kafka Connect worker before it runs.编辑:由于您使用 Docker 运行 Kafka Connect,因此您需要在运行之前使 JDBC JAR 文件对 Kafka Connect 工作程序可用。 You can't just run the Docker container and copy the JDBC driver into it, because you need to restart Kafka Connect afterwards.
不能只运行Docker容器然后把JDBC驱动复制进去,因为之后需要重启Kafka Connect。
To workaround this, you can mount the JAR from your local machine to the relevant path in the container.要解决此问题,您可以将 JAR 从本地机器挂载到容器中的相关路径。 The relevant path is whereever the Kafka Connect JDBC jar is.
相关路径是 Kafka Connect JDBC jar 所在的位置。 Looking at the
fast-data-dev
image it's in查看它所在的
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
So you can run所以你可以运行
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
or mount it in your Docker Compose with a volumes
config:或使用
volumes
配置将其安装在您的 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
It's worth noting that Confluent Platform 3.3.0 is really old - the latest is 5.3.1.值得注意的是,Confluent Platform 3.3.0 真的很老了——最新的是 5.3.1。 If you want to see an up-to-date example of running Kafka, Kafka Connect, SQL Server etc with JDBC driver automatically set up see this example here .
如果您想查看使用自动设置的 JDBC 驱动程序运行 Kafka、Kafka Connect、SQL Server 等的最新示例,请参见此处的示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.