创建Debezium连接器时报NoClassDefFoundError: org/apache/kafka/connect/header/ConnectHeaders
报错原因
该错误由Kafka Connect运行时版本与Debezium连接器版本不兼容导致:
- 报错提示缺失的
org.apache.kafka.connect.header.ConnectHeaders是Apache Kafka 2.0版本才正式引入的API类 - 你安装的
confluent-platform-oss-2.11内置的Kafka版本为0.10.x系列,远低于2.0版本,不存在该类 - 当前使用的Debezium PostgreSQL连接器版本较新,依赖Kafka 2.0及以上版本的API,在低版本运行时环境中就会抛出类不存在的异常
排查解决步骤
第一步:确认当前各组件版本
- 执行命令
kafka-topics.sh --version查看本地Kafka Connect对应的Kafka基础版本,确认是否低于2.0 - 检查Debezium插件目录下的连接器版本,核对其要求的最低Kafka版本
第二步:选择兼容版本组合调整
方案1:升级Kafka Connect运行时(推荐)
你使用的AWS MSK集群版本为2.6.1,建议将本地Confluent平台升级到适配的版本:
- Confluent 5.5.x版本内置Kafka版本为2.5/2.6系列,与MSK 2.6.1完全兼容,同时支持新版Debezium连接器
- 卸载原有旧版Confluent平台后,安装对应5.5.x的开源版本,重新配置
connect-distributed.properties启动服务即可
方案2:降级Debezium连接器版本
若暂时无法升级Confluent平台,可降级Debezium到适配低版本Kafka的版本:
- Debezium 0.9.x及更早版本支持Kafka 0.10.x系列,下载对应版本的PostgreSQL连接器替换现有插件即可
- 注意旧版Debezium的部分配置参数与新版存在差异,需对应调整连接器配置
第三步:验证修复效果
调整完版本后重启Kafka Connect服务,重新提交连接器配置,查看服务日志确认无类缺失报错,连接器正常启动同步即可。
内容的提问来源于stack exchange,提问作者Surya Tamraparni
相关产品推荐
相关产品推荐

