当我运行自己修改的wordcount示例时,我遇到了Flink 0.9.0 Release的问题。我发现计数窗口表现出局部窗口,这与官方文档不同。我还在https://issues.apache.org/jira/browse/FLINK-1657中找到了一个固定的错误。哪个是正确答案?任何帮助,将不胜感激!非常感谢
答案 0 :(得分:3)
现在的规范答案是时间是全局的(因为时间总是全局的),所有其他窗口都是本地的或者没有很好地定义。
我们发现了一些问题,目前正在为下一个版本重新编写API。您可以在此处阅读设计文档:https://cwiki.apache.org/confluence/display/FLINK/Streams+and+Operations+on+Streams和https://cwiki.apache.org/confluence/display/FLINK/Time+and+Order+in+Streams。
通过这些更改,我们试图清楚地说明哪些窗口是并行处理的,哪些是全局/本地的。
答案 1 :(得分:1)
在应用窗口之前,您需要分组:
dataStream.flatMap(new WordCount.Tokenizer()).groupBy(0).window(Count.of(8)).every(Count.of(4)).sum(1).flatten().print()
计数窗口在本地组装(据我所知)。目前,Flink不提供任何订购保证,因此,本地构建计数窗口可提供最佳性能。