Kafka Connect Confluent S3 接收器连接器:找不到 Class io.confluent.connect.avro.AvroConverter

Kafka Connect Confluent S3 Sink Connector: Class io.confluent.connect.avro.AvroConverter could not be found

使用这个 Kafka Connect 连接器:

https://www.confluent.io/hub/confluentinc/kafka-connect-s3

我手动将其安装到我的 Kafka Connect Docker 映像的 /opt/kafka/plugins 中。 我的目的是使用 Kafka Connect 将 Avro 记录从 Kafka 主题写入 S3。

在运行时,使用 Kafka Connect,我收到错误:

ERROR Stopping due to error (org.apache.kafka.connect.cli.ConnectDistributed) [main]
org.apache.kafka.common.config.ConfigException: Invalid value io.confluent.connect.avro.AvroConverter for configuration key.converter: Class io.confluent.connect.avro.AvroConverter could not be found.
    at org.apache.kafka.common.config.ConfigDef.parseType(ConfigDef.java:744)
    at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:490)
    at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:483)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:108)
    at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:129)
    at org.apache.kafka.connect.runtime.WorkerConfig.<init>(WorkerConfig.java:452)
    at org.apache.kafka.connect.runtime.distributed.DistributedConfig.<init>(DistributedConfig.java:405)
    at org.apache.kafka.connect.cli.ConnectDistributed.startConnect(ConnectDistributed.java:95)
    at org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:80)

在 Confluent 开源中寻找 class 并查看其他 Confluent Kafka Connect 插件后,我的解决方案是从此处的 Confluent Kafka Connect Avro Converter 插件复制 kafka-connect-avro-converter-7.1.1.jar

https://www.confluent.io/hub/confluentinc/kafka-connect-avro-converter

进入confluentinc-kafka-connect-s3*/lib目录。

这似乎行得通,但似乎有点老套,而且似乎应该有更好的支持、更简单的方法来让它工作。有没有更好的方法?

理想情况下,您应该使用 confluent-hub 添加连接器和转换器。

https://docs.confluent.io/platform/current/installation/docker/development.html#add-connectors-or-software

否则,是的,您将从 Maven Central 或 Confluent 存储库下载并提取相关包,然后添加到插件路径。