在Kafka中看不到提交给__consumer_offsets主题的偏移量

时间:2018-11-08 14:58:26

标签: apache-spark apache-kafka

我有一个Spark Streaming Scala应用程序,该应用程序从Kafka主题读取数据并将其放在HDFS上。我希望该应用程序将已读消息的偏移量存储到 __ consumer_offsets 主题,以便在应用程序失败时开始从其读取内容。该应用程序运行正常(我可以在HDFS上看到数据),但是看不到它对 __ consumer_offsets 的提交。

这是我的KafkaParams:

GUID

我用于从__consumer_offsets获取提交的偏移量的命令如下:

val kafkaParams = Map(
      "metadata.broker.list" -> "xx.xxx.x.xx:6667",
      "enable.auto.commit" -> "true",
      "group.id" -> "reading_telemetry",
      "offsets.storage" -> "kafka"
    )

我得到有关表单的已提交偏移量的一些信息

  

[test1,test,0] :: [OffsetMetadata [55,NO_METADATA],CommitTime   1539603328309,到期时间6723603328309]

但是我看不到“ reading_telemetry”组ID的任何提交。知道为什么吗?

我的环境:

卡夫卡:1.0.1 火花:2.3.1 Scala:2.11.8

2 个答案:

答案 0 :(得分:1)

使用如下所示的kafka-consumer-groups.sh脚本:

kafka-consumer-groups.sh  --bootstrap-server <BootStrapServerIP:port> --describe --group telemetryGroup

它将以以下格式返回信息:

GROUP                  TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG       OWNER
telemetryGroup        test-topic      0          15              15              0         telemetryGroup-1/127.0.0.1
telemetryGroup        test-topic      1          14              15              1         telemetryGroup-2_/127.0.0.1

答案 1 :(得分:0)

您不应该直接阅读__consumer_offsets主题。这是一个内部主题,您应该使用工具来检索已提交的偏移量。

最简单的方法是运行kafka-consumer-groups工具:

kafka-consumer-groups.sh \
    --bootstrap-server [BOOTSTRAP_SERVERS] \
    --describe \
    --group reading_telemetry

CURRENT-OFFSET列包含已提交的偏移量。