如果不设置组id,pyspark kafka如何知道从何处开始使用数据?

如果不设置组id,pyspark kafka如何知道从何处开始使用数据?,pyspark,apache-kafka,spark-streaming,Pyspark,Apache Kafka,Spark Streaming,我运行Pypark结构化流媒体,但没有指定kafka组id,每次运行该程序时,我发现记录程序消息中的group.id总是发生更改。我很困惑,如果它更改group.id,它如何知道下次从哪里开始消费,或者我应该手动设置卡夫卡的偏移量?我如何知道它自动生成的主题id与我自己手动设置的其他主题id冲突?您最好阅读卡夫卡官方文档中的部分: 消费者用消费者组名称标记自己,发布到某个主题的每个记录都会传递到每个订阅消费者组中的一个消费者实例。使用者实例可以位于单独的进程中,也可以位于单独的计算机上 如果所有

我运行Pypark结构化流媒体,但没有指定kafka组id,每次运行该程序时,我发现记录程序消息中的group.id总是发生更改。我很困惑,如果它更改group.id,它如何知道下次从哪里开始消费,或者我应该手动设置卡夫卡的偏移量?我如何知道它自动生成的主题id与我自己手动设置的其他主题id冲突?

您最好阅读卡夫卡官方文档中的部分:

消费者用消费者组名称标记自己,发布到某个主题的每个记录都会传递到每个订阅消费者组中的一个消费者实例。使用者实例可以位于单独的进程中,也可以位于单独的计算机上

如果所有使用者实例都具有相同的使用者组,则记录将有效地在使用者实例上进行负载平衡

如果所有使用者实例具有不同的使用者组,则每个记录都将广播到所有使用者进程

每个消费群体都有自己的补偿。如果未指定consumer group.id,则每次运行程序时都会生成一个新的consumer group id并将其分配给用户客户端。通过这种方式,您将始终开始阅读来自乞讨者的消息(偏移量=0)

如果要从上次偏移量继续读取,则需要使用与以前相同的group.id

每个主题都可以有多个消费群体。您可以列出它们:

bin/kafka-consumer-groups.sh  --list --bootstrap-server localhost:9092
并描述一些特定的群体:

bin/kafka-consumer-groups.sh --describe --group mygroup --bootstrap-server localhost:9092

每当您重新启动时,您的消费者是否从主题开始读取数据?我不知道,kafka Web UI看不到偏移量和组id事实上,spark structured streaming无法设置组id,它在您每次运行程序时都会生成组id,它使用最新偏移量的卡夫卡数据。您是否有与
应用程序.id
相关的内容?此ID用于以下位置,以将应用程序使用的资源与其他资源隔离开来。例如,作为Kafka consumer group.id进行协调。请查看
application.id
部分。更新应用程序时,应更改application.id,除非您希望重用内部主题和状态存储中的现有数据。例如,您可以将版本信息嵌入application.id中,如my-app-v1.0.0和my-app-v1.0.2。也许它能帮助你。而且这看起来很有用