ByteArraySerializer is not an instance of org.apache.kafka.common.serialization.Serializer
背景
在Flink使用Kafka进行Source 或者Sink的时候需要进行KeyValue的序列化和反序列化操作。现在应该没有人用Kafka 0.XX版本的了吧,估计都是1.X 或者2.X版本。
在这两个版本中,可以直接使用更新的Flink-Kafka-connection 包,具体使用可以参照官网。
报错类型
- 消费和生产弄反。
在消费的时候使用反序列化器 Source,在生产的时候使用序列化器 Sink。但其实在1.X以后,Flink就可以不用特意区分两者的区别,可以使用以下代码:
// Source端
val source: FlinkKafkaConsumer[String] = new FlinkKafkaConsumer[String](consumerTopic, new SimpleStringSchema(), propertiesSource)
flinkKafkaConsumer
.setStartFromGroupOffsets()
.setCommitOffsetsOnCheckpoints(false)
// Sink端
val sink = new FlinkKafkaProducer

本文介绍了在Flink与Kafka集成时遇到的序列化错误,分析了错误原因可能是消费与生产的配置混淆以及依赖包重复导致。提供了正确的Source和Sink配置示例,并建议在pom.xml中将相关依赖设置为`provide`范围以避免打包时重复。同时,强调了检查和管理依赖的重要性。
最低0.47元/天 解锁文章
2535

被折叠的 条评论
为什么被折叠?



