You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Avro转换器时Kafka Connect ADLS Gen2连接器报错求助

问题描述

尝试将数据以Parquet格式写入Azure Data Lake Storage Gen2时触发错误,相关配置及错误信息如下:

格式配置

format.class: io.confluent.connect.azure.storage.format.parquet.ParquetFormat

pom.xml依赖

io.confluent
kafka-connect-avro-converter
7.2.1

kc_config.yaml配置

key.converter: io.confluent.connect.avro.AvroConverter
value.converter: io.confluent.connect.avro.AvroConverter
connector.class: io.confluent.connect.azure.datalake.gen2.AzureDataLakeGen2SinkConnector
storage.class: io.confluent.connect.azure.datalake.gen2.storage.AzureDataLakeGen2Storage
azure.datalake.gen2.account.name: ${ADLS_ACCOUNT_NAME}
azure.datalake.gen2.access.key: ${AZURE_KEY}

运行错误信息

java.lang.NoSuchMethodError: io.confluent.kafka.serializers.KafkaAvroSerializerConfig.getLatestCompatibilityStrict()Z
        at io.confluent.kafka.serializers.AbstractKafkaAvroSerializer.configure(AbstractKafkaAvroSerializer.java:55)
        at io.confluent.connect.avro.AvroConverter$Serializer.<init>(AvroConverter.java:145)
        at io.confluent.connect.avro.AvroConverter.configure(AvroConverter.java:77)
        at org.apache.kafka.connect.runtime.isolation.Plugins.newConverter(Plugins.java:293)
        at org.apache.kafka.connect.runtime.Worker.startTask(Worker.java:446)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.startTask(DistributedHerder.java:1140)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder.access$1700(DistributedHerder.java:125)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:1155)
        at org.apache.kafka.connect.runtime.distributed.DistributedHerder$13.call(DistributedHerder.java:1151)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:750)
解决方案

这个错误是Confluent组件依赖版本不兼容导致的:KafkaAvroSerializerConfig.getLatestCompatibilityStrict()方法在当前混用的版本中不存在,或依赖树中存在版本冲突。

具体解决步骤:

  1. 统一所有Confluent组件版本:确保kafka-connect-avro-converter、Azure Data Lake Gen2 Sink Connector、Parquet格式组件的版本完全一致,当前使用的是7.2.1,需同步其他Confluent依赖至该版本。
  2. 排查依赖冲突:执行mvn dependency:tree命令生成依赖树,找出是否有不同版本的kafka-serializers或avro-serializer被引入,排除掉低版本或不匹配的冲突依赖。
  3. 补充Schema Registry配置:AvroConverter必须依赖Schema Registry才能正常工作,在kc_config.yaml中添加以下配置:
    key.converter.schema.registry.url: ${SCHEMA_REGISTRY_URL}
    value.converter.schema.registry.url: ${SCHEMA_REGISTRY_URL}
    

内容的提问来源于stack exchange,提问作者Hemanth Gowda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:24:17