Windows11下SpoolDirCsvSourceConnector创建Kafka Connect连接器失败
解决Kafka Connect SpoolDir连接器
input.path/error.path路径无效问题 核心原因
你用Docker部署的Kafka Connect,连接器运行在容器内部,不能直接使用宿主机的路径,必须配置容器内部的绝对路径,同时要确保宿主机的目标目录已经挂载到容器对应路径。
具体修复步骤
调整docker-compose的卷挂载配置
在Connect服务的volumes字段中,添加宿主机目录到容器的挂载映射,示例如下:services: connect: # 保留原有其他配置 volumes: - ./testdata:/opt/kafka-connect/input # 宿主机testdata目录挂载到容器内的/opt/kafka-connect/input - ./error:/opt/kafka-connect/error # 宿主机error目录挂载到容器内的/opt/kafka-connect/error注意:宿主机的
./testdata和./error目录需要提前手动创建。修改sample.json的路径配置
将input.path和error.path替换为容器内的绝对路径:{ "connector.class": "io.confluent.connect.spooldir.SpoolDirCsvSourceConnector", "input.path": "/opt/kafka-connect/input", "error.path": "/opt/kafka-connect/error", # 保留原有其他配置项 }确保目录权限正确
给宿主机的挂载目录设置可读写权限,避免容器内用户无法访问:chmod -R 777 ./testdata ./error重启服务并重新创建连接器
先重启Docker Compose让挂载配置生效:docker-compose down && docker-compose up -d再执行你的curl命令创建连接器:
curl -i -X PUT -H "Accept:application/json" -H "Content-Type:application/json" http://localhost:8083/connectors/source-csv-spooldir-00/config -d @sample.json
验证方法
进入Connect容器,检查挂载路径是否正常:
docker exec -it <connect-container-name> bash ls -l /opt/kafka-connect/input
如果能看到宿主机的testdata.csv文件,说明挂载配置生效。
内容的提问来源于stack exchange,提问作者Vineet Mishra
相关产品推荐
相关产品推荐

