当我运行自己修改的 wordcount 示例时,我遇到了 Flink 0.9.0 Release 的一些问题。我发现count窗口的行为与官方文档不同的本地窗口。而且我还在https://issues.apache.org/jira/browse/FLINK-1657中发现了一个已修复的错误。哪个是正确答案?任何帮助,将不胜感激!非常感谢
问问题
221 次
2 回答
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。
通过这些更改,我们试图明确哪些窗口是并行处理的,哪些是全局/本地的。
于 2015-07-22T09:04:10.050 回答
1
您需要在应用窗口之前进行分组:
dataStream.flatMap(new WordCount.Tokenizer()).groupBy(0).window(Count.of(8)).every(Count.of(4)).sum(1).flatten().print()
计数窗口是在本地组装的(据我所知)。目前,Flink 不提供任何排序保证,因此在本地构建计数窗口可以提供最佳性能。
于 2015-07-21T08:39:49.200 回答