【问题标题】:SQL Server Kafka connector in standalone mode not loading data in kafka独立模式下的 SQL Server Kafka 连接器未在 kafka 中加载数据
【发布时间】:2020-10-20 00:33:09
【问题描述】:

我正在使用 JDBC 源 Kafka 连接器以独立模式将数据从 SQL Server 转储到 Kafka。我已经为 JDBC 连接器 jar 下载了 confluentinc-kafka-connect-jdbc-5.5.0.zip 并复制了 plugin.path 中的所有 jar。我正在使用以下工作器和连接器配置。

  • worker.peroperties

      value.converter=org.apache.kafka.connect.json.JsonConverter
      key.converter=org.apache.kafka.connect.json.JsonConverter
      bootstrap.servers=localhost:9092
      plugin.path=/home/kafka_2.12-2.5.0/connector/plugin/
      offset.storage.file.filename=file
    
  • connector1.properties

      name=test12_connector
      connector.class=io.confluent.connect.jdbc.JdbcSourceConnector
      connection.url=jdbc:sqlserver://host;databaseName=db;
      connection.user=user
      connection.password=password
      query=SELECT TOP 100 * FROM table;
      topic.prefix=test-
      mode=bulk
    

我正在使用以下命令以独立模式运行连接器-

sh bin/connect-standalone.sh -daemon connector/worker.properties connector/connector1.properties

我正在使用最新的 SQL Server JDBC 驱动程序并复制到相同的插件路径。

另外,在 CLASSPATH 中添加了相同的 plugin.path

但我面临的问题是它卡在日志中的以下行并且没有从表中生成主题中的任何数据(预期主题:测试表)

-日志

[2020-06-29 18:41:31,402] DEBUG Dialect SqlServerDatabaseDialect scored 100 against JDBC subprotocol 'sqlserver' and source 'jdbc:sqlserver://host:1433;databaseName=db;' (io.confluent.connect.jdbc.dialect.DatabaseDialects:127)
[2020-06-29 18:41:31,402] DEBUG Dialect SqliteDatabaseDialect scored 0 against JDBC subprotocol 'sqlserver' and source 'jdbc:sqlserver://host:1433;databaseName=db;' (io.confluent.connect.jdbc.dialect.DatabaseDialects:127)
[2020-06-29 18:41:31,402] DEBUG Dialect SybaseDatabaseDialect scored 100 against JDBC subprotocol 'sqlserver' and source 'jdbc:sqlserver://host:1433;databaseName=db;' (io.confluent.connect.jdbc.dialect.DatabaseDialects:127)
[2020-06-29 18:41:31,403] DEBUG Dialect VerticaDatabaseDialect scored 0 against JDBC subprotocol 'sqlserver' and source 'jdbc:sqlserver://host:1433;databaseName=db;' (io.confluent.connect.jdbc.dialect.DatabaseDialects:127)
[2020-06-29 18:41:31,403] DEBUG Using dialect SqlServerDatabaseDialect with score 100 against JDBC subprotocol 'sqlserver' and source 'jdbc:sqlserver://host:1433;databaseName=db;' (io.confluent.connect.jdbc.dialect.DatabaseDialects:133)

它甚至没有显示任何错误日志。我已将日志级别更改为 TRACE,但连接器仍然没有显示任何错误并且仅显示上述日志。 如果我遗漏了什么,请帮助我。

【问题讨论】:

    标签: jdbc apache-kafka apache-kafka-connect


    【解决方案1】:

    我会尝试使用可能添加的连接器属性:

    "tasks.max": "1",
    "internal.key.converter.schemas.enable": "false",
    "reporter.admin.bootstrap.servers": "localhost:9092",
    "internal.value.converter.schemas.enable": "false",
    

    它似乎也挂起没有连接到源 SQL 服务器,因此连接字符串不正确或找不到该方言的驱动程序 JAR 文件。 检查日志是否加载了 JDBC SQL Server 方言驱动程序。

    【讨论】:

    • 我已经检查了日志 JDBC SQL Server 驱动程序正在加载 DEBUG Registered java.sql.Driver: SQLServerDriver:7 to java.sql.DriverManager Registered loader: PluginClassLoader{pluginLocation=file:/home/connector/plugin/mssql-jdbc-8.2.0.jre8.jar} 奇怪的是,当我使用错误的连接字符串时,它会显示错误“连接超时”以及删除插件时它是显示“未找到合适的驱动程序”。否则,它会挂起或无法继续进行。
    • 查询需要很长时间才能完成吗?正如您在评论中所写 - 驱动程序肯定已加载。
    • 感谢您的回复@adomas.m 现在已解决。某些防火墙规则阻止了 DB 端口上的连接。但我认为 Kafka 连接器应该针对这个防火墙问题显示一些错误。
    猜你喜欢
    • 2020-11-08
    • 2021-10-15
    • 1970-01-01
    • 2021-10-13
    • 2020-05-09
    • 2019-06-22
    • 2019-09-06
    • 2017-01-15
    • 2022-01-12
    相关资源
    最近更新 更多