TaskSlot(任务槽)
- 每个TaskManager是一个JVM的进程,TaskSlot是TaskManager中资源分配的最小单位,每个TaskManager能够处理的最大任务数由TaskSlot决定。
- Flink将每个进程的内存划分到了slot中,内存被划分到不同的slot有以下好处:
- TaskManager最多能同时并发执行的子任务(Subtask)可以通过TaskSolt数量来控制
- 每个TaskSolt都独占一个内存空间,这样每个TaskManager中可以运行多个不同作业,作业之间不受影响。
注:这里指的不同作业指的是同一个作业的不同阶段
Slot Sharing(槽共享)
-
Flink允许子任务共享插槽,它使同一作业的后面一些阶段直接在旧的slot中执行
例如:上图中左下角的map和keyBy和sink在一个TaslSlot里执行以达到资源共享的目的。 -
允许插槽共享的好处:
- 资源分配更加公平,如果有比较空闲的slot可以将更多的任务分配给他。
- 有了任务槽共享,可以提高资源的利用率。
- 避免槽的创建和销毁,提高了集群的性能。
注: