flink -之提交一个任务会占用几个slots
flink提交一个job,需要的slots数量与slot组有关
1 不设置slotGroup
如果不设置,那么所有的算子的操作共享一个slot组default;
// 假如是提交以下逻辑的flink job
env.readTextFile().setP(2)
.map().setP(4)
.print() //默认p.default=1
上述代码的job提交后所有任务占用的slots的总量为4,通常这个job的所有任务会占用所有算子中并行度最高的那个数量。
最终的分配为
slot1 source => map => print
slot2 map
slot3 source => map
slot4 map
2 设置slotGroup
如果为不同的算子设置了不同的slot共享组,那么这些算子的子任务就不能共享相同的slot。
// 假如是提交以下逻辑的flink job
env.readTextFile().setP(2).setSlotGroup("red")
.map().setP(4).setSlotGroup("green")
.print() //默认p.default=1
以上代码提交后,占用的共享者组为:6 ,其中print算子的子任务与上一个算子子任务共享一个slot组。
具体分配如下:
slot1 source
slot2 source
slot3 map => print
slot4 map
slot5 map
slot6 map