1. 任务提交流程
1. 独立集群任务提交
2. yarn方式的集群资源管理
粗略概述,后续针对该方式,会有详细的补充说明。
2. 任务调度原理
3. TaskManager和slots
1. 概述图
- Flink中每个TaskManager都是一个JVM进程,每一个任务插槽都会启动一个线程,它可能会在独立的线程上执行一个或者多个subTask,每一个子任务都会占用一个任务插槽(Task slot)。
- 为了控制一个 TaskManager 能接收多少个 task, TaskManager 通过 task slot 来进行控制(一个 TaskManager 至少有一个 slot)
2. 详细图
3. 默认情况下,Flink 允许子任务共享 slot,即使它们是不同任务的子任务。 这样的结果是,一个 slot 可以保存作业的整个管道。 4. Task Slot 是静态的概念,是指 TaskManager 具有的并发执行能力
3. 详细分析实例
- 配置文件中配置taskManager中的插槽数
- 设置任务只需要1个slot的情况
- 设置任务只需要2个slot的情况
- 设置任务只需要9个slot的情况
- 设置不同算子不同的并行度
并行度要小于插槽数