gpt4 book ai didi

scala - Spark Streaming - 批处理间隔与处理时间

转载 作者:行者123 更新时间:2023-12-05 00:52:50 24 4
gpt4 key购买 nike

我们有一个 Spark Streaming application在 YARN 集群上运行。

它接收来自 Kafka topics 的消息.

实际上我们的处理时间超过了批处理间隔。

Batch Interval : 1 Minute
Processing Time : 5 Minutes

我想知道,如果在处理时间之间接收到一些数据会发生什么,在处理结束之前内存中的数据是否可用。还是会在后续的数据获取中被覆盖?

我们正在使用 Direct Streaming approach从 Kafka 主题中获取数据。

我应该选择 Window based操作?例如,如果我有 Window length as 5 Minutes and Sliding interval as 2 Minutes and Batch Interval as 1 Minute ,它会工作吗?因为我们不能丢失应用程序中的任何数据。

最佳答案

在直接流式传输方法中,接收器不会读取数据,然后将其分派(dispatch)给其他工作人员。发生的情况是驱动程序从 Kafka 读取偏移量,然后将要读取的偏移量子集发送给每个分区。

如果您的工作人员还没有完成上一个作业的处理,他们将不会开始处理下一个作业(除非您明确地将 spark.streaming.concurrentJobs 设置为大于 1)。这意味着将读取偏移量,但实际上不会分派(dispatch)给负责读取数据的执行程序,因此不会有任何数据丢失。

这确实意味着您的工作将无限迟到并导致大量处理延迟,这不是您想要的。根据经验,任何 Spark 作业的处理时间都应该小于为该作业设置的时间间隔。

关于scala - Spark Streaming - 批处理间隔与处理时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42091843/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com