【发布时间】:2020-05-18 07:00:42
【问题描述】:
我正在尝试通过示例 WordCount 找出 Flink 中的插槽共享和并行性。
说我需要用Flink做字数统计工作,数据源只有一个,sink只有一个。
在这种情况下,我可以像上图那样进行设计吗?我的意思是,我在Source + map() 上设置了两个子任务,在keyBy()/window()/apply() 上设置了两个子任务,也就是说,我有两行:A --- B --- Sink 和C --- D --- Sink,这样我可以得到更好的性能。
比如有一个数据流来了:aaa,bbb,aaa。使用上面的设计,我可能会遇到这样的情况:aaa 和bbb 进入A --- B,另一个aaa 进入C --- D。最后,我可以在Sink 获得结果aaa: 2, bbb: 1。我现在合适吗?
如果我是对的,我知道同一个任务的子任务不能共享一个槽,那么是不是意味着A和C不能共享一个槽,B和D可以'共享一个插槽?我对吗?如何分配插槽?我应该将A + B + Sink 放入一个插槽,将C + D 放入另一个插槽吗?
【问题讨论】:
标签: parallel-processing architecture apache-flink flink-streaming