dex*_*ter 6 apache-spark spark-streaming
在火花流中,我们收到的DStream是一批RDD.那么窗口如何进一步帮助.
根据我的理解,它也批量RDD.
如果我错了,请纠正我(Spark Streaming新手).
Mar*_*ier 13
一批中的记录数由批处理间隔确定.窗口将使批次数保持在窗口大小范围内,这就是窗口大小必须是批处理间隔的倍数的原因.然后,您的操作将在多个批次上运行,并且对于每个新批次,窗口将向前移动,丢弃较旧的批次.
关键是在流式传输中,属于一起的数据不一定同时到达,尤其是在低批量间隔时.使用Windows,您基本上可以追溯到时间.
但请注意,您的作业仍然以指定的批处理间隔运行,因此它将以与以前相同的速度生成输出,但同时查看更多数据.您还将多次查看相同的数据!
迈克尔·诺尔(Michael Noll)有一篇很好的博客文章,更详细地解释了这一点:http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/.
更新:
您可以增加批处理间隔,但随后您的作业处理速度也会变慢,即仅每10秒创建一次输出而不是2.您还可以在计算的一部分上放置一个窗口,而批处理间隔会影响所有内容.以结帐reduceByKeyAndWindow为例.
批处理间隔:
•流式计算 - >连续的批量计算系列 - >对小批量数据进行操作
•Spark Steaming - >从多个来源接收数据 - >将其分成小批量 - >以固定时间间隔创建新批次
•每个时间间隔的开始 - >创建新批次 - >在间隔期间到达的任何数据都将添加到批次中.
•每个输入批次形成一个RDD
窗口持续时间:合并多个批次的结果
滑动持续时间:控制新DStream计算结果的频率
示例1:批处理间隔的源DStream = 10秒想要创建最后30秒(或最后3批)的滑动窗口 - >窗口持续时间为30秒
滑动持续时间(默认为批处理间隔)控制新DStream计算结果的频率.
示例2:如果我们的源DStream的批处理间隔为10秒,并且只想在每隔一个批次计算我们的窗口,我们将滑动间隔设置为20秒
| 归档时间: |
|
| 查看次数: |
9688 次 |
| 最近记录: |