如何知道哪些操作符可以在apache flink中链接

qrjkbowd  于 2021-06-26  发布在  Flink
关注(0)|答案(1)|浏览(300)

我在读Apache·Flink的医生:https://ci.apache.org/projects/flink/flink-docs-stable/concepts/runtime.html.
正如医生所说,
对于分布式执行,flink将操作符子任务链接到一个任务中。每个任务由一个线程执行。将操作符链接到任务中是一种有用的优化:它减少了线程到线程的切换和缓冲的开销,并在减少延迟的同时提高了总体吞吐量。
因此,据我所知,知道哪些操作符可以链接是很重要的。但我们怎么知道呢?我的意思是,我们怎么知道哪些运算符可以链接,哪些运算符不能链接?
例如,在wordcount的例子中,

当我们开始编写代码时,我们怎么知道呢 Source 以及 map() 可以被锁起来,那 map() 以及 keyBy()/window()/apply() 不能被锁住?

brccelvz

brccelvz1#

只要两个操作员通过转发数据连接进行连接,就可以将它们链接起来。换言之,keyby、rebalance或更改并行性(这也是一个rebalance)会强制网络通信,并使操作符链接不可能。

相关问题