无法连接到SQLServer Kafka Connect

时间:2018-05-24 23:09:15

标签: sql-server docker jdbc apache-kafka apache-kafka-connect

我有一个码头图像位于此处 https://github.com/Landoop/fast-data-dev具有我用于开发的所有好东西。我已尝试添加JDBC连接器以推送到Kafka主题但是我收到此错误。我用Java创建了一个正常工作但我想使用KafkaConnect的消费者

Invalid value java.sql.SQLException: No suitable driver found for jdbc:sqlserver://servername for configuration Couldn't open connection to jdbc:sqlserver://servername

name=JdbcSourceConnector
connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
connection.user=user
connection.password=password
tasks.max=1
connection.url=jdbc:sqlserver://servername
topic.prefix=test
table.whitelist=dbo.IB_WEBLOG_DUMMY_small
query=SELECT * FROM IB_WEBLOG_DUMMY_small
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter=org.apache.kafka.connect.json.JsonConverter
poll.interval.ms=5000
table.poll.interval.ms=120000
mode=bulk

我应该考虑解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的JDBC驱动程序的JAR文件不在Kafka Connect的类路径中。把它放在那里,你将good to go

  

一种选择是在连接器旁边安装JDBC驱动程序jar。打包的连接器安装在share/java/kafka-connect-jdbc目录中,相对于安装目录。如果您已从Debian或RPM软件包安装,则连接器将安装在/usr/share/java/kafka-connect-jdbc中。如果您是从zip或tar文件安装的,则连接器将安装在上面给出的解压缩Confluent Platform归档目录下的路径中。

     

或者,您可以在运行connect-standalone或connect-distributed之前设置CLASSPATH变量。例如:

     

$ CLASSPATH=/usr/local/firebird/* ./bin/connect-distributed ./config/connect-distributed.properties

或者,将所有SQL Server JDBC JAR文件放在Apache Kafka根文件夹下的libs目录中。但这会污染类路径,最好在生产中避免使用。