Strimzi kafka connect 找不到我的自定义变压器,但找到连接器

问题描述 投票:0回答:1

我正在运行一个 Strimzi

KafkaConnect
集群,它加载自定义
transformer
以将 SMT 应用于我们的消息。
.jar
位于图像内并由 Strimzi KafkaConnect 集群加载(出现在日志中):

Dockerfile 行:

FROM quay.io/strimzi/kafka:0.29.0-kafka-3.0.1
USER root:root
RUN mkdir -p /opt/kafka/plugins
COPY --from=unpacker /unpack/kafka-connect-aws-s3 /opt/kafka/plugins #this is the lenses.io connector and works fine
COPY ./<FILE>.jar /opt/kafka/plugins #<FILE>.jar is downloaded locally by pipeline.
USER 1001

(我在

/opt/kafka/plugins
目录中也有一个连接器,并且由 KafkaConnect 很好地拾取)

我看到的错误是:

Message:               PUT /connectors/<NAME>/config returned 400 (Bad Request): Connector configuration is invalid and contains the following 2 error(s):
Invalid value <CLASS> for configuration transforms.<NAME>.type: Class <CLASS> could not be found.
Invalid value null for configuration transforms.<NAME>.type: Not a Transformation

但是,当我检查图像本身时,文件在那里并且类似乎在那里:

unzip -l /opt/kafka/plugins/<FILE>.jar | grep <CLASS>
     1333  07-31-2023 09:49   <CLASS>$Companion.class
     7990  07-31-2023 09:49   <CLASS>.class

Strimzi KafkaConnect 日志:

k logs kafka-topics-backup-aws-connect-9f564bdcb-5qnp6 | grep <FILE>.jar
2023-08-30 13:51:49,301 INFO Loading plugin from: /opt/kafka/plugins/<FILE>.jar (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader) [main]
2023-08-30 13:51:49,973 INFO Registered loader: PluginClassLoader{pluginLocation=file:/opt/kafka/plugins/<FILE>.jar} (org.apache.kafka.connect.runtime.isolation.DelegatingClassLoader) [main]

YAML

KafkaConnectors
的相关部分:

spec:
  class: io.lenses.streamreactor.connect.aws.s3.sink.S3SinkConnector
  tasksMax: 1 
  config:
    topics: "<NAME>"
    connect.s3.kcql: <KCQL_STRING>
    connect.s3.padding.strategy: LeftPad
    connect.s3.padding.length: 8
    connect.s3.vhost.bucket: true
    transforms: "<NAME>"
    transforms.<NAME>.type: "<CLASS>"

我期望当我使用上面的转换创建

KafkaConnectors
时,它们会加载类并工作。

apache-kafka-connect strimzi
1个回答
0
投票

我遇到的问题是我使用的是 Strimzi 0.29.0(带有 Kafka 3.0.1),而 Transformer 是用 Java17 构建的。当我将 Transformer 更改为 Java11 后,KafkaConnect 就找到了它并使用了

© www.soinside.com 2019 - 2024. All rights reserved.