【问题标题】:Unable to connect to SQLServer Kafka Connect无法连接到 SQLServer Kafka Connect
【发布时间】:2018-11-04 06:34:57
【问题描述】:

我有一个位于此处的 docker 映像 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

我应该如何解决这个问题?

【问题讨论】:

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


    【解决方案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 目录中。但这会污染类路径,最好在生产环境中避免。

    【讨论】:

    • 我没有导演 /usr/share/java。这与我正在使用的 docker 映像有关吗?
    • 将您的 JAR 文件放在您喜欢的任何位置,例如 /my/jars/。然后,如果您使用bash,请运行EXPORT CLASSPATH=/my/jars/*。然后运行./bin/connect-distributed ./config/connect-distributed.properties
    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2021-08-28
    • 2020-05-07
    • 2020-06-19
    • 2020-07-20
    • 2019-04-24
    • 2019-11-14
    相关资源
    最近更新 更多