在Flink 0.9.0版本中,Count Window是Local或Global

时间:2015-07-21 03:00:22

标签: apache-flink

当我运行自己修改的wordcount示例时,我遇到了Flink 0.9.0 Release的问题。我发现计数窗口表现出局部窗口,这与官方文档不同。我还在https://issues.apache.org/jira/browse/FLINK-1657中找到了一个固定的错误。哪个是正确答案?任何帮助,将不胜感激!非常感谢

2 个答案:

答案 0 :(得分:3)

现在的规范答案是时间是全局的(因为时间总是全局的),所有其他窗口都是本地的或者没有很好地定义。

我们发现了一些问题,目前正在为下一个版本重新编写API。您可以在此处阅读设计文档:https://cwiki.apache.org/confluence/display/FLINK/Streams+and+Operations+on+Streamshttps://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不提供任何订购保证,因此,本地构建计数窗口可提供最佳性能。