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

Kafka S3 Connector转Parquet写入MinIO启动失败排查

问题分析与解决办法

一、缺失的依赖包

报错io.confluent.connect.avro.AvroConverter找不到,核心原因是缺了Confluent Avro Converter的相关依赖。S3连接器写Parquet格式时,必须依赖Avro序列化组件完成数据转换,你只放置了s3-connector本身的jar包,没安装它依赖的配套组件。

需要补充这些和s3-connector 10.1.0版本匹配的jar包:

  • kafka-connect-avro-converter-10.1.0.jar
  • avro-1.11.x.jar(对应Confluent 10.1.0的Avro版本)
  • kafka-schema-registry-client-10.1.0.jar
  • common-config-10.1.0.jar、common-utils-10.1.0.jar(Confluent通用工具包)

这些包可以从Confluent的Maven仓库下载,或者直接下载对应版本的Confluent Platform完整包,提取里面的相关jar丢到/plugins/lib目录即可。

二、必须调整的配置

1. 替换Converter并部署Schema Registry

原来用JSON格式时可能用的是org.apache.kafka.connect.json.JsonConverter,改Parquet后必须把key/value的Converter换成Avro Converter,而且必须单独部署Schema Registry服务——Avro Converter依赖它管理数据Schema,你之前的Docker Compose里没有这个服务,得加上。

连接器配置要这么改:

key.converter=io.confluent.connect.avro.AvroConverter
key.converter.schema.registry.url=http://schema-registry:8081
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://schema-registry:8081

Docker Compose里新增Schema Registry服务的示例:

schema-registry:
  image: confluentinc/cp-schema-registry:7.3.0  # 和s3-connector 10.1.0对应的Confluent版本是7.3.x
  hostname: schema-registry
  depends_on:
    - kafka-broker
  environment:
    SCHEMA_REGISTRY_HOST_NAME: schema-registry
    SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: kafka-broker:9092
    SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081

同时在Kafka Connect的环境变量里加入Converter配置:

CONNECT_KEY_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081
CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter
CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081

2. 指定Parquet输出格式

在连接器配置里明确设置输出格式为Parquet:

format.class=io.confluent.connect.s3.format.parquet.ParquetFormat

3. 检查权限

确保Docker容器内/plugins/lib下的所有jar包都有可读权限,避免因为权限问题导致类加载失败。

三、验证步骤

  1. 把所有依赖jar放好后,重启Kafka Connect服务
  2. 确认Schema Registry能正常访问(比如用curl访问http://<你的主机IP>:8081)
  3. 重新创建连接器,查看日志是否还有类找不到的报错

内容的提问来源于stack exchange,提问作者Jin Ma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:48:22