Spark Structured Streaming - 如何忽略检查点?
Spark Structured Streaming - How to ignore checkpoint?
我正在使用微批处理 (readStream
) 从 Kafka 流中读取消息,处理它们并通过 writeStream
将结果写入另一个 Kafka 主题。该作业(流式查询)设计为 运行“永远”,处理大小为 10 秒(处理时间)的微批次。 checkpointDirectory
选项已设置,因为 Spark 需要检查点。
然而,当我尝试使用相同的源流(相同的主题等)但可能不同的处理算法提交另一个查询时,Spark 完成前一个 运行ning 查询并创建一个新的 具有相同的 ID(因此它从上一个作业“完成”的相同偏移量开始)。
如何告诉 Spark 第二个作业与第一个不同,因此不需要从检查点恢复(即预期的行为是创建一个全新的流查询,不连接到前一个,并保持上一个 运行ning)?
您可以通过在各自的 writeStream 调用中设置 checkpointLocation
选项来实现两个流式查询的独立性。您应该不在 SparkSession 中集中设置检查点位置。
这样,他们就可以运行独立,不会互相干扰。
我正在使用微批处理 (readStream
) 从 Kafka 流中读取消息,处理它们并通过 writeStream
将结果写入另一个 Kafka 主题。该作业(流式查询)设计为 运行“永远”,处理大小为 10 秒(处理时间)的微批次。 checkpointDirectory
选项已设置,因为 Spark 需要检查点。
然而,当我尝试使用相同的源流(相同的主题等)但可能不同的处理算法提交另一个查询时,Spark 完成前一个 运行ning 查询并创建一个新的 具有相同的 ID(因此它从上一个作业“完成”的相同偏移量开始)。
如何告诉 Spark 第二个作业与第一个不同,因此不需要从检查点恢复(即预期的行为是创建一个全新的流查询,不连接到前一个,并保持上一个 运行ning)?
您可以通过在各自的 writeStream 调用中设置 checkpointLocation
选项来实现两个流式查询的独立性。您应该不在 SparkSession 中集中设置检查点位置。
这样,他们就可以运行独立,不会互相干扰。