Connector配置无连接器类型报错:JDBC Connector连接PostgreSQL求助
解决Kafka Connect "Connector config contains no connector type" 错误
看起来你犯了一个常见的配置文件混淆错误——把JDBC连接器的专属配置放到了Worker全局配置文件里,这才导致了这个报错。下面是具体的排查和修复步骤:
1. 纠正配置文件的职责划分
Kafka Connect的两个配置文件是各司其职的:
worker.properties:负责Worker进程的全局设置(比如Kafka集群地址、转换器、偏移量存储等),绝对不能包含连接器的专属配置jdbc-connector.properties:专门存放JDBC源连接器的所有配置项
修正后的worker.properties示例
把你原来混在里面的连接器配置移除,只保留Worker相关设置:
# Kafka集群地址 bootstrap.servers=your-kafka-broker:9092 # 内部转换器设置 internal.key.converter=org.apache.kafka.connect.json.JsonConverter internal.value.converter=org.apache.kafka.connect.json.JsonConverter internal.key.converter.schemas.enable=false internal.value.converter.schemas.enable=false # 偏移量存储配置(单机模式用文件即可) offset.storage.file.filename=/tmp/connect.offsets offset.flush.interval.ms=10000
完整的jdbc-connector.properties示例
把之前错误放在worker里的连接器配置移到这里,还要补充PostgreSQL连接的必要参数:
# 连接器名称(唯一标识) name=test-postgres-1 # 核心:指定连接器类型(这就是报错里缺失的"connector type") connector.class=io.confluent.connect.jdbc.JdbcSourceConnector # 任务数 tasks.max=1 # PostgreSQL连接信息 connection.url=jdbc:postgresql://your-postgres-host:5432/your-db-name connection.user=your-db-username connection.password=your-db-password # 要同步的表(用逗号分隔多个表) table.whitelist=public.your-table-name # 增量同步模式(可选,根据你的需求调整) mode=incrementing incrementing.column.name=id # 生成Kafka主题的前缀 topic.prefix=postgres-
记得把上面的占位符(比如your-postgres-host、your-db-name)替换成你实际的集群信息。
2. 检查依赖是否齐全
这个报错也有可能是JDBC连接器的jar包没正确安装:
- 确保Confluent JDBC Connector的jar包已经放在Kafka Connect的
share/java/kafka-connect-jdbc目录下 - 如果你的PostgreSQL版本比较新,可能需要手动添加PostgreSQL的JDBC驱动jar到上述目录,或者在连接器配置里显式指定
connection.driver.class=org.postgresql.Driver
3. 重新执行启动命令
确认两个配置文件都修正完毕后,再运行你的启动命令:
connect-standalone.sh worker.properties jdbc-connector.properties
这样应该就能解决"Connector config contains no connector type"的错误了。
内容的提问来源于stack exchange,提问作者frollo
相关产品推荐
相关产品推荐

