当前位置:   article > 正文

33、Flink 的 DataStream API 算子链和资源组使用

33、Flink 的 DataStream API 算子链和资源组使用
算子链和资源组

将两个算子链接在一起使得它们在同一个线程中执行,从而提升性能;Flink 默认会将能链接的算子尽可能地进行链接(例如, 两个 map 转换操作)。

如果想对整个作业禁用算子链,可以调用 StreamExecutionEnvironment.disableOperatorChaining(),下列方法还提供了更细粒度的控制;需要注意的是,这些方法只能在 DataStream 转换操作后才能被调用,因为它们只对前一次数据转换生效。

例如,可以 someStream.map(…).startNewChain() 这样调用,而不能 someStream.startNewChain() 这样。

一个资源组对应着 Flink 中的一个 slot 槽,可以根据需要手动地将各个算子隔离到不同的 slot 中。

a)创建新链

基于当前算子创建一个新的算子链。

后面两个 map 将被链接起来,而 filter 和第一个 map 不会链接在一起。

someStream.filter(...).map(...).startNewChain().map(...);
  • 1
b)禁止链接

禁止和 map 算子链接在一起。

someStream.map(...).disableChaining();
  • 1
c)配置 Slot 共享组

为某个算子设置 slot 共享组,Flink 会将同一个 slot 共享组的算子放在同一个 slot 中,而将不在同一 slot 共享组的算子保留在其它 slot 中。

可用于隔离 slot ,如果所有输入算子都属于同一个 slot 共享组,那么 slot 共享组将继承输入算子所在的 slot,slot 共享组的默认名称是 “default”,可以调用 slotSharingGroup(“default”) 来显式地将算子放入该组。

someStream.filter(...).slotSharingGroup("name");
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/594849
推荐阅读
相关标签
  

闽ICP备14008679号