Flink TaskManager 与 slots 与 core 与 并行度的关系

1,我先简单的说说自己的理解,Flink可能跟spark不太一样

 1)TaskManager 与 slots

    比如我们有2个 TaskManager  每个TaskManager 设置了3个slot,那么slot总数是6 

Flink TaskManager 与 slots 与 core 与 并行度的关系_第1张图片

在执行任务的时候,如下图:

Flink TaskManager 与 slots 与 core 与 并行度的关系_第2张图片

2)slot 与 cpu的关系 

每个Flink TaskManager在集群中提供处理槽。 插槽的数量通常与每个TaskManager的可用CPU内核数成比例。一般情况下你的slot数是你每个TM的cpu的核数。

经验上讲Slot的数量与CPU-core的数量一致为好。但考虑到超线程,可以让slotNumber=2*cpuCore.

例如我们这里有6个slot,所以给3 或者 6个core比较好

3)slot 与并行度 

严格来说 我们设置task的并行度不能超过slot的数量,比如我们这里slot数量是6,那么最大的并行度也就是6.

下图是并行度为1 的执行图:

Flink TaskManager 与 slots 与 core 与 并行度的关系_第3张图片

并行度为2的执行图:

注意:设置并行度 有3种方式,优先级自己去验证。

Flink TaskManager 与 slots 与 core 与 并行度的关系_第4张图片

4)内存

我们指定了每个TaskManager内存 为3G 那么一个TM里面有3个Slot,每个Slot 分到1G内存 。

 

 

 

你可能感兴趣的:(Flink,优化,Flink,TaskManager,与,slots,与,co)