赞
踩
将两个算子链接在一起使得它们在同一个线程中执行,从而提升性能;Flink 默认会将能链接的算子尽可能地进行链接(例如, 两个 map 转换操作)。
如果想对整个作业禁用算子链,可以调用 StreamExecutionEnvironment.disableOperatorChaining(),下列方法还提供了更细粒度的控制;需要注意的是,这些方法只能在 DataStream 转换操作后才能被调用,因为它们只对前一次数据转换生效。
例如,可以 someStream.map(…).startNewChain() 这样调用,而不能 someStream.startNewChain() 这样。
一个资源组对应着 Flink 中的一个 slot 槽,可以根据需要手动地将各个算子隔离到不同的 slot 中。
基于当前算子创建一个新的算子链。
后面两个 map 将被链接起来,而 filter 和第一个 map 不会链接在一起。
someStream.filter(...).map(...).startNewChain().map(...);
禁止和 map 算子链接在一起。
someStream.map(...).disableChaining();
为某个算子设置 slot 共享组,Flink 会将同一个 slot 共享组的算子放在同一个 slot 中,而将不在同一 slot 共享组的算子保留在其它 slot 中。
可用于隔离 slot ,如果所有输入算子都属于同一个 slot 共享组,那么 slot 共享组将继承输入算子所在的 slot,slot 共享组的默认名称是 “default”,可以调用 slotSharingGroup(“default”) 来显式地将算子放入该组。
someStream.filter(...).slotSharingGroup("name");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。