看这一篇的之前需要了解一下Task和subTask的概念和划分:
https://blog.csdn.net/weixin_44844089/article/details/117035039
1. slot
Flink 中每一个TaskManager都是一个 JVM 进程,JVM允许它可能会在独立的线程上执行一个或多个 subtask(一个task由多个subtask组成)。为了控制一个 worker 能接收多少个 task,worker 通过 task slot 来进行控制(一个 worker 至少有一个 task slot)每个 task slot 表示 TaskManager 拥有资源的一个固定大小的子集。假如一个TaskManager 有三个 slot,那么它会将其管理的内存分成三份给各个 slot。资源 slot化意味着一个 subtask 将不需要跟来自其他 job 的 subtask 竞争被管理的内存,取而代之的是它将拥有一定数量的内存储备。需要注意的是,这里不会涉及到 CPU 的隔离,slot 目前仅仅用来隔离 task 的受管理的内存。
注:一个solt是一个线程。
2. 任务并行过程
其实就是一个job的最大并行度就表示要占用的slot数量,一个Task中的多个subTask不能运行在一个slot中。