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

使用jcustenborder/kafka-connect-twitter对接Kafka Connect报错排查

核心问题解答

1. 原生Apache Kafka发行版是否自带Kafka Connect相关依赖?

原生Apache Kafka发行版仅自带Kafka Connect核心运行时组件,不包含Confluent社区维护的AvroConverter等额外扩展组件。AvroConverter属于Confluent Schema Registry相关生态组件,是Confluent平台发行版的内置内容,不在Apache官方Kafka的发布包中。

2. 错误原因与解决方法

第一个报错:找不到io.confluent.connect.avro.AvroConverter

你使用的connect-avro-docker.properties是Confluent平台适配的配置文件,原生Kafka环境下直接调用会缺失Avro相关依赖,解决方案:

  • 将配置文件中的key.converter和value.converter配置修改为原生Kafka自带的转换器,比如用JSON转换器:
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false

如果确实需要使用Avro序列化,需要手动下载Confluent的kafka-connect-avro-converter相关jar包,放到Kafka Connect的插件目录下。

第二个报错:java.lang.NoClassDefFoundError: com/google/common/collect/Multimap

这个问题是Kafka 2.8.0和JDK 17的兼容性问题,以及插件类加载隔离机制导致的:

  • Kafka 2.8.0官方推荐的JDK版本为8或11,JDK 17对反射、模块化的限制会导致Kafka 2.8.0版本的类加载逻辑异常,哪怕日志显示加载了Guava包,实际运行时也会找不到类,建议降级JDK到11版本。
  • 不要单独放置Guava包到插件目录,正确的插件放置方式是:把kafka-connect-twitter组件编译后生成的target/kafka-connect-target/usr/share/kafka-connect/kafka-connect-twitter整个目录,拷贝到你Kafka配置的plugin.path指定的目录下,不要拆分里面的jar包。
  • 检查connect-standalone.properties里的plugin.path配置,确保指向了你存放连接器插件的父目录。

正确运行步骤参考

  1. 组件编译完成后,把完整的连接器目录拷贝到插件路径,比如你存放插件的目录是/Users/paupaches/dev/kafka-connect/plugins,就把整个kafka-connect-twitter目录拷入该路径
  2. 修改connect-standalone.properties的plugin.path为/Users/paupaches/dev/kafka-connect/plugins,同时修改转换器为上述JSON转换器
  3. 直接执行启动命令即可:connect-standalone.sh connect-standalone.properties TwitterSourceConnector.properties,不需要手动配置CLASSPATH,Kafka Connect的插件加载机制会自动扫描路径下的jar包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 00:54:01