结构化流媒体+kafka集成

ckocjqey  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(348)

我正在尝试使用结构化流与Kafka读写信息。如果我使用结构化流,spark会将偏移量存储到检查点目录?
如果我想使用消费者组来处理某个主题的Kafka消息,它将如何工作?在这里,我们不向kafka提交偏移量,如果我们丢失了检查点目录,它将如何容错?
检查点的位置应该如何?我可以对多个作业或多个使用者使用相同的检查点目录吗?
如果我将startingoffset配置为earlish,那么每次重新启动作业都会从头开始读取吗?因为我们没有将偏移提交给kafka?

rkttyhzu

rkttyhzu1#

默认情况下,结构化流将生成唯一的组id以从kafka读取数据,从而确保没有其他使用者正在通过该组id读取数据。您也可以将kafka组id设置为从kafka读取数据,但必须确保没有其他使用者使用该组id,否则您的作业可能只能读取部分数据。使用hdfs作为检查点dir和hdfs复制因子的结构化流确保即使一个节点关闭,数据也会复制到其他节点,这使得检查点具有容错性。
在向任何接收器写入数据时,必须提供检查点位置,而spark保持在该触发器上处理的偏移范围。如果您将为多个作业提供相同的检查点位置,那么如果从同一主题消费,则会出现问题。
通过将startingoffset配置为earlish,每次都从起点开始。在哪里提交补偿并不重要。

相关问题