本文主要是介绍Flink实例(六十六): Flink的任务链实操(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Operator Chains(操作链)
-
Flink出于分布式执行的目的,将operator的subtask链接在一起形成task(类似spark中的管道)。
-
每个task在一个线程中执行。
-
将operators链接成task是非常有效的优化:它可以减少线程与线程间的切换和数据缓冲的开销,并在降低延迟的同时提高整体吞吐量。
-
链接的行为可以在编程API中进行指定,详情请见代码OperatorChainTest。
-
开启操作链 和 禁用操作链的对比图(默认开启):
-
Flink默认会将多个operator进行串联,形成任务链(task chain)
-
注意: task chain 可以理解为就是 operator chain 只是不同场景下,称呼不同。
-
我们也可以禁用任务链,让每个operator形成一个task。
-
StreamExecutionEnvironment.disableOperatorChaining() 这个方法会禁用整条工作链
-
操作链其实就是类似spark的pipeline管道模式,一个task可以执行同一个窄依赖中的算子操作。
-
我们也可以细粒度的控制工作链的形成,比如调用dataStr
这篇关于Flink实例(六十六): Flink的任务链实操(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!