kafka-consumer-groups 命令不显示 spark 结构化流应用程序(消费者)的 LAG 和 CURRENT-OFFSET

kafka-consumer-groups command doesnt show LAG and CURRENT-OFFSET for spark structured streaming applications(consumers)

我有一个从 kafka 消费的 spark 结构化流应用程序,对于这个应用程序,我想监控消费者延迟。我正在使用下面的命令来检查消费者滞后。但是我没有得到 CURRENT-OFFSET,因此 LAG 也是空白的。这是预期的吗?它适用于其他 python 的消费者。

命令

kafka-consumer-groups --bootstrap-server <bootstrap-server>:<port> --describe --all-groups

输出

GROUP                                                                TOPIC         PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG              CONSUMER-ID                                     HOST            CLIENT-ID
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 21         -               5546            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 7          -               5129            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 3          -               5178            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 9          -               4969            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 2          -               5443            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3
spark-kafka-source-b5e8d872-f727-4ed0-a82c-a3d279647942-407459747-driver-0 my_topic 15         -               5312            -               consumer-3-bc651181-fc62-4b1a-abdf-fb3e9d244df8 /<ip-address>    consumer-3

"However I don't get the CURRENT-OFFSET and hence LAG is blank too. Is this expected?"

是的,这是预期的行为,因为 Spark Structured Streaming 应用程序不会将任何偏移量提交回 Kafka。因此,该消费者组的当前偏移量和滞后值不会存储在 Kafka 中,您将看到您所显示的消费者组工具的结果。

我已经写了一个关于 Consumer Group 以及 Spark Structured Streaming 应用程序如何管理 Kafka 偏移量的更全面的答案 here