apache storm tumbling窗口中的过期元组

g9icjywg  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(380)

我实现了一个大小为100的滚动窗口(基于计数)。在运行拓扑时,我看到新元组的计数(inputwindow.get)和过期元组的计数(inputwindow.getexpired)都是100。我已将消息时间设置为600秒以外。有了这个超时时间,我本以为没有元组会过期。元组过期的原因是什么?我已将螺栓设置为螺栓。使用TumblingWindow(计数(100)),螺栓的平行度提示为120
builder.setbolt(“螺栓”,bolt.withtumblingwindow(计数(100)),120).shufflegrouping(“喷口”)

k97glaaz

k97glaaz1#

我想你可能误解了过期元组是什么。也许把它们叫做“逐出的元组”会更友好。
它们是从当前窗口中逐出的元组,但在上一个窗口中存在。它们不是消息超时已过期的元组,当然它们也可能在这个意义上过期。
假设你收到200个元组。第一个窗口是元组0-99,没有过期的元组。第二个窗口是tuple100-199,其中tuple0-99已过期。
这是有用的原因是在滑动窗口的情况下,窗口不是不相交的。在这种情况下,您可能会得到一个窗口,例如0-99,然后50-149,然后99-199。如果你被告知“0-49元组已经不在窗口中了”,而不是自己去计算,这会很有帮助。
有关这方面的更多信息,请查看控制窗口的类https://github.com/apache/storm/blob/925422a5b5ad1c3329a2c2b44db460ae94f70806/storm-client/src/jvm/org/apache/storm/windowing/windowmanager.java

相关问题