假设我有一个由3个节点组成的Flink集群。一个节点用于作业管理器,另外两个节点用于任务管理器。每个任务管理器有3个任务槽。因此,当我提交并行度等于2的作业时,Flink将分配两个任务槽。所以,我的问题是,Flink将如何分配这些任务时段?
某些场景
Flink是否为每个任务管理器分配一个任务槽?
是否有可能从同一任务管理器分配两个任务槽?如果是,那么如果特定节点由于某种原因关闭,我的作业将不会运行。在这种情况下,我如何避免停机?
由于Flink 1.10,您可以使用配置设置cluster.evenly-spread-out-slots: true
使调度程序在所有可用的任务管理器中均匀分布插槽。否则,它将使用一个任务管理器中的所有插槽,然后再从另一个任务中获取插槽。
是的,如果每个TM有3个插槽,任务插槽可以分配给同一个任务管理器。如果任何运行活动插槽的节点关闭,作业将失败并尝试重新启动,此时所有插槽都将分配给唯一运行的节点。