【问题标题】:kafka connect not loading manually built connectorskafka connect不加载手动构建的连接器
【发布时间】:2021-10-20 06:16:36
【问题描述】:

我下载了aiven-kafka-connect-jdbc 并手动构建了 jar。将相同的 jar 放入 kafka-connect 插件目录,并在 connect-standalone.properties 中提到了插件路径。 但是当我运行连接时,它会抛出错误,提示“找不到任何实现连接器且名称与 io.aiven.connect.jdbc.JdbcSourceConnector 匹配的类”

我的配置中缺少什么?

connect-standalone.properties

bootstrap.servers=*******:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
offset.storage.file.filename=/Kafka/kafka_2.13-2.8.0/data/kafka/connect/offsets/connect.offsets
offset.flush.interval.ms=10000
plugin.path=/Kafka/kafka_2.13-2.8.0/Plugins,/Kafka/kafka_2.13-2.8.0/libs,

connector.properties

name=aiventransconnector
connector.class=io.aiven.connect.jdbc.JdbcSourceConnector
connection.url=jdbc:oracle:thin:@****&&:1521/****?verifyServerCertificate=false&useSSL=true&requireSSL=true
connection.user=******
connection.password=******
table.whitelist= TRANSACTIONS
tasks.max= 1
auto.create= true
auto.evolve= true
mode=incrementing
incrementing.column.name=TRANSACTION_ID
numeric.mapping=precision_only
topic.prefix=AIVEN

kafka connect插件的文件夹结构

/Kafka/
  -kafka_2.13-2.8.0/
    -Plugins/
      -aiven-kafka-connect-jdbc/
        -lib/
          -aiven-kafka-connect-jdbc-6.7.0-SNAPSHOT.jar with all dependencies

【问题讨论】:

  • 下载的文件不能作为 jar 使用,所以我使用 gradlew 构建并将生成的 jar 放在插件文件夹中
  • 您是说那里的 40 mb tar/zip 文件不包含已编译的代码?我的意思是,您会将其中一个提取到您的插件路径中
  • 对不起,我说的是源代码。现在我明白你的意思了,现在我下载了 zip,解压插件并添加到相同的路径中。现在问题也没有解决
  • 如果您查看以connect-standalone.sh 开头的日志,您应该会看到Added plugin 'io.aiven.connect.jdbc.JdbcSourceConnector'。如果不是,那么你的错误就从那里开始

标签: apache-kafka apache-kafka-connect aiven


【解决方案1】:

无法复制...

也许这些步骤之一会有所帮助

$ cd ~/workspace
$ mkdir aiven-kafka-connect-jdbc
$ curl -kL https://github.com/aiven/aiven-kafka-connect-jdbc/releases/download/v6.6.0/aiven-kafka-connect-jdbc-6.6.0.tar | tar -xv -C ./aiven-kafka-connect-jdbc
$ grep -e '^plugin.path=' /usr/local/etc/kafka/connect-standalone.properties
plugin.path=/home/me/workspace/aiven-kafka-connect-jdbc
$ connect-standalone /usr/local/etc/kafka/connect-standalone.properties ~/workspace/sqlite-standalone.properties
...
[2021-08-18 11:07:24,260] INFO Registered loader: PluginClassLoader{pluginLocation=file:/home/me/workspace/aiven-kafka-connect-jdbc/aiven-kafka-connect-jdbc-6.6.0/} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:269)
[2021-08-18 11:07:24,260] INFO Added plugin 'io.aiven.connect.jdbc.JdbcSourceConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:198)
[2021-08-18 11:07:24,261] INFO Added plugin 'io.aiven.connect.jdbc.JdbcSinkConnector' (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader:198)
... 
[2021-08-18 11:07:26,276] INFO Kafka Connect started (org.apache.kafka.connect.runtime.Connect:57)
[2021-08-18 11:07:26,296] INFO JdbcConfig values:
    batch.max.rows = 100
    catalog.pattern = null
    connection.attempts = 3
    connection.backoff.ms = 10000
    connection.password = null
    connection.url = jdbc:sqlite:/home/me/workspace/test.db

【讨论】:

  • 其他插件正在加载,而不是源和接收器连接器,
  • 当然,Kafka 带有一些默认插件。我只提取了相关日志
  • Added plugin 'org.apache.kafka.connect.connector.policy.AllConnectorClientConfigOverridePolicy' Added plugin 'org.apache.kafka.connect.connector.policy.PrincipalConnectorClientConfigOverridePolicy' 'org.apache.kafka.connect.connector.policy.NoneConnectorClientConfigOverridePolicy'
  • 但源连接器和接收器连接器仍未加载
  • 不知道该告诉你什么。我在 Mac 和 Docker 上使用最新的 Kafka Connect 进行了测试
【解决方案2】:

确保您在 Java 11 或更高版本上运行。

正如他们的README 顶部所述,Aiven GCS Sink 连接器需要 Java 11+,而您的 Java 版本可能比这更旧。

你可以通过运行java --version来检查你当前的JVM。

要下载最新版本的 Java,请访问 here

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 2020-05-07
    • 2019-07-19
    • 2019-02-02
    • 2019-04-24
    • 2018-08-27
    • 2021-01-13
    • 2019-02-20
    • 2021-10-29
    相关资源
    最近更新 更多