微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在来自 Kafka 的结构化流中倒带和重新使用偏移量

如何解决在来自 Kafka 的结构化流中倒带和重新使用偏移量

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

例如:当前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

解决方法

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

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

如果您想从偏移量 800 开始读取,您需要删除检查点文件并使用 Structured Streaming + Kafka Integration Guide 中所述的 readStream 选项 startingOffsets

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。