加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 18:09:17 所属栏目:安全 来源:网络整理
导读:我们在YARN Cluster上运行了一个Spark Streaming应用程序. 它接收来自Kafka主题的消息. 实际上我们的处理时间超过了批处理间隔. Batch Interval : 1 MinuteProcessing Time : 5 Minutes 我想知道,如果在处理时间之间收到一些数据会发生什么,数据是否会在内存
我们在YARN Cluster上运行了一个Spark Streaming应用程序.

它接收来自Kafka主题的消息.

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

Batch Interval : 1 Minute
Processing Time : 5 Minutes

我想知道,如果在处理时间之间收到一些数据会发生什么,数据是否会在内存中可用,直到处理结束.或者它将在后续数据提取中被覆盖?

我们使用Direct Streaming方法从Kafka主题获取数据.

我应该使用基于Window的操作吗?例如,如果我的窗口长度为5分钟,滑动间隔为2分钟,批次间隔为1分钟,它会工作吗?因为我们不能在我们的应用程序中丢失任何数据.

解决方法

在直接流方法中,接收方不会读取数据,然后将数据发送给其他工作人员.发生的事情是驱动程序从Kafka读取偏移量,然后向每个分区发送要读取的偏移量的子集.

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读