ask是flink中的一个逻辑概念,一个任务由一个或者多个算子组合而成(多个算子构成一个任务是需要满足一定的条件才可以,有兴趣的老铁可以来了解一下 Operator Chain),为了提升任务执行的效率,可以对任务配置并行度,使任务在实际运行过程中并行执行,此时该任务的多个并行任务被称为子任务(subTask)。如下图:每个虚线框是一个任务,框里的圆是子任务。
总结来说:Task是逻辑概念,subTask是实际运行的实例,一个Task的subTask个数就是上面说的并行度。在上图中Task有3个,subTask有6个。
Slot
Slot是flink集群中资源分配的基本单位,slot主要分布在TaskManager中,了解flink架构的老铁都知道,TaskManager是一个jvm进程,是subTask运行的地方。
当TaskManager启动的时候会将自己的资源以Slot的方式注册到ResourceManager,然后JobManager从ResourceManager处申请到Slot资源之后,会将subTask调度到这些Slot上面去运行,在整个过程中sub task是调度的基本单元,Slot则是资源分配的基本单元。
这里需要说明一下:slot之间内存隔离,cpu不隔离,也就是内存是独立的,但是cpu是共享的。
Task并行度和slot个数之间的关系是怎样的?
一个Task的并行度,要求该任务有指定个