Apache Flink 中的并行性如何工作?

Sha*_*dra 0 apache-flink

假设我有一个包含 3 个节点的 Flink 集群。一个节点用于作业管理器,另外 2 个节点用于任务管理器。每个任务管理器有 3 个任务槽。因此,当我提交并行度等于 2 的作业时,Flink 将分配两个任务槽。那么,我的问题是,Flink 将如何分配这些任务槽?

一些场景

Flink 是否为每个任务管理器分配一个任务槽?

两个任务槽是否有可能从同一个任务管理器分配?如果是,如果该特定节点由于某种原因关闭,我的作业将无法运行。在这种情况下如何避免停机?

Dav*_*son 5

从 Flink 1.10 开始,您可以使用配置设置cluster.evenly-spread-out-slots: true来使调度程序将插槽均匀分布在所有可用的任务管理器上。否则,它将使用一个任务管理器中的所有插槽,然后再从另一个任务管理器中获取插槽。