0

有没有办法可以在结构化流中回退偏移量?我使用的是 Spark 版本 3,并且我已经将我的startingoffset 配置为最早,之后每次重新启动都会从检查点目录中选择偏移值。

例如:Kafka当前的偏移量是1000,checkpoint目录中提交的偏移量是900。我想再次从800重新消耗偏移量。我怎样才能做到这一点?

如果我取消当前运行并使用以下命令重置消费者组的偏移值。结构化流是否会在重新启动时从那里选择偏移量而不是考虑检查点目录?

kafka-consumer-groups.sh --bootstrap-server <broker hostname> \
  --group <consumer group> --reset-offsets --to-offset 800 \
  --topic <topicName>:<partition number> \
  --execute
4

1 回答 1

0

Spark Structured Streaming 不会将任何偏移量提交回 Kafka,而只会跟踪其检查点文件中消耗的偏移量。

这意味着使用该kafka-consumer-groups.sh工具将无济于事。

如果要从偏移量 800 开始读取,则需要删除检查点文件并使用结构化流 + Kafka 集成指南startingOffsets中所述的 readStream 选项:

在此处输入图像描述

于 2021-03-15T10:46:13.513 回答