Flink:SocketWindowCount 示例的结果不是我所期望的
Flink: the result of SocketWindowCount example isn't what I expected
我是flink新手。我按照flink网站上的quickstart,在单机上部署flink。在我执行“./bin/flink 运行 examples/streaming/SocketWindowWordCount.jar --port 9000”并输入网站描述的单词后,我得到结果:final result
程序好像没有做reduce,我想知道为什么?谢谢
程序确实做了一个reduce,但不是完全的,因为你的输入一定是分成了两个不同的5秒windows。这就是为什么 ipsum 的 4 个实例报告为 1 + 3 的原因——第一个实例落入一个 window,而其他 3 个实例落入另一个 window(连同 "bye")。
Flink 的 window 边界基于与时钟的对齐。因此,如果您的输入事件发生在 14:00:04 和 14:00:08 之间,例如,它们将分为两个 5 秒 windows -- 一个用于 14:00:00 - 14:00:04。 999 和另一个用于 14:00:05 - 14:00:09.999 - 即使你的所有事件都适合一个只有 4 秒长的间隔。
如果您再试一次,您会看到类似但可能不同的结果。这是根据 "processing time" 进行 windowed 分析的结果。如果您希望您的应用程序获得可重复的结果,您应该计划改用“event time”分析(其中时间戳基于事件发生的时间,而不是它们被处理的时间)。
我是flink新手。我按照flink网站上的quickstart,在单机上部署flink。在我执行“./bin/flink 运行 examples/streaming/SocketWindowWordCount.jar --port 9000”并输入网站描述的单词后,我得到结果:final result
程序好像没有做reduce,我想知道为什么?谢谢
程序确实做了一个reduce,但不是完全的,因为你的输入一定是分成了两个不同的5秒windows。这就是为什么 ipsum 的 4 个实例报告为 1 + 3 的原因——第一个实例落入一个 window,而其他 3 个实例落入另一个 window(连同 "bye")。
Flink 的 window 边界基于与时钟的对齐。因此,如果您的输入事件发生在 14:00:04 和 14:00:08 之间,例如,它们将分为两个 5 秒 windows -- 一个用于 14:00:00 - 14:00:04。 999 和另一个用于 14:00:05 - 14:00:09.999 - 即使你的所有事件都适合一个只有 4 秒长的间隔。
如果您再试一次,您会看到类似但可能不同的结果。这是根据 "processing time" 进行 windowed 分析的结果。如果您希望您的应用程序获得可重复的结果,您应该计划改用“event time”分析(其中时间戳基于事件发生的时间,而不是它们被处理的时间)。