【Flink系列十三】Flink-Kafka-Connector KafkaSource FlinkKafkaConsumer没有上报指标

222 阅读1分钟

问题

使用了 Flink-Kafka-Connector(版本1.13.0),使用 FlinkKafkaConsumer 上报了 KafkaLag 指标,但是换成 KafkaSource 却没有任何指标。

原因

通过查阅 JIRA1 发现,Flink-1.13 的 kafka-connector 的新版 KafkaSource 没有上报指标。

修复的版本:1.13.2, 1.14,意思是升级到这两个版本才能上报Kafka相关的指标。

兼容性错误

如果遇到这个问题,则说明 kafka-clients 的版本太低。

Caused by: java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.committed(Ljava/util/Set;)Ljava/util/Map;
	at org.apache.flink.connector.kafka.source.reader.KafkaPartitionSplitReader.acquireAndSetStoppingOffsets(KafkaPartitionSplitReader.java:331) ~[flink-application-xxxx.jar:?]

Flink-Kafka-Connector 和 KafkaClients的兼容性说明

Flink-1.13.2+ 使用的 Kafka API 至少 2.4.1。

  • Kafka版本的兼容性未在官方文档中指出。Flink源码中引用的版本是 kafka-clients 2.4.1 。

Flink-1.13.2 使用到新版的KafkaAPI 变更的说明

解决方案

Flink 1.13 的发行版,可以直接使用 1.13.2 的 Flink-kafka-connector。

依据:通过查看 有关源码 FLINK-22766,发现该 Connector 的变更不依赖除 Connector 以外的任何变更,因此可以兼容 Flink-1.13.0。

也可以把 Flink 发行版连同 Connector 直接升级到 Flink-1.13.2,Flink-1.14。

参考链接

Flink 发起的 KafkaSource 提议

Footnotes

  1. Report metrics of KafkaConsumer in Kafka new source