Confluent Kafka对接Azure EventHub Source Connector启动报错咨询
问题解答
1. 报错核心原因与修复方案
你遇到的Found null value for non-optional schema报错属于数据格式校验异常,触发原因是Azure EventHub中存在值为null的字段,而Kafka Connect默认配置的转换器使用的Avro schema将对应字段标记为非可选,触发了校验失败。
你当前的配置缺少数据异常处理和转换器的显式配置,需要补充以下参数到连接器配置中:
- 方案1:启用坏消息跳过,将异常数据写入死信队列避免任务崩溃
"errors.tolerance": "all", "errors.deadletterqueue.topic.name": "eventhub-source-dlq", "errors.deadletterqueue.context.headers.enable": true
- 方案2:临时切换为无schema校验的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格式,需要调整对应字段的schema,将可能为空的字段的optional属性设置为true即可。
2. localhost:9092取值是否正确需要结合你的部署场景判断:
- 如果你是在同一台EC2实例上自行部署Confluent Platform全栈(包含Kafka Broker和Kafka Connect),且Broker确实配置了监听
localhost:9092端口,那这个取值是正确的。 - 如果你使用的是Confluent Cloud托管Kafka集群,这个取值完全错误,需要替换为Confluent Cloud控制台提供的官方Bootstrap Server地址,同时还要额外补充集群认证、SSL相关的配置参数才能正常连接。
另外你配置的confluent.topic.bootstrap.servers参数作用是给Confluent内部组件(偏移量存储、配置存储、状态存储主题)提供接入地址,判断规则和上面的逻辑一致。
额外校验点
你需要额外确认Azure EventHub相关配置的正确性:
- SAS密钥是否有EventHub的读取权限
- 命名空间、EventHub名称拼写是否正确
- 网络策略是否允许EC2实例访问Azure EventHub的公网/专线地址
内容的提问来源于stack exchange,提问作者Prithvi Boinpally
相关产品推荐
相关产品推荐

