我有一个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
答案 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
列包含已提交的偏移量。