我是flink的新手。我遵循flink网站上的快速入门,并将flink部署在一台计算机上。在执行“ ./bin/flink运行示例/streaming/SocketWindowWordCount.jar --port 9000”并输入网站描述的文字后,我得到的结果是:final result
似乎该程序没有执行reduce,我只是想知道为什么?谢谢。
答案 0 :(得分:0)
由于您的输入必须落入两个不同的5秒窗口中,因此该程序确实做了精简,但未完全完成。这就是为什么ipsum的4个实例报告为1 + 3的原因-第一个实例落入一个窗口,而其他3个实例落入另一个窗口(以及“再见”)。
Flink的窗口边界基于与时钟的对齐。因此,例如,如果您的输入事件发生在14:00:04和14:00:08之间,则它们会落入两个5秒的窗口中-一个用于14:00:00-14:00:04.999,另一个用于14: 00:05-14:00:09.999-即使您所有的事件都适合一个只有4秒长的间隔。
如果重试,可能会看到相似但可能不同的结果。这是基于“处理时间”进行窗口分析的结果。如果希望应用程序获得可重复的结果,则应计划使用“ event time”分析(时间戳基于事件发生的时间,而不是事件的处理时间)。