未在Kubernetes(副本)中的多个TaskManager上调度Apache Flink作业

问题描述 投票:0回答:1

我有一个简单的Flink作业,它从ActiveMQ源和接收器读取到数据库并打印。我在Kubernetes中以2 TaskManagers部署了作业,每个Task Slots为10(taskmanager.numberOfTaskSlots: 10)。我配置的并行度比可用的总TaskSlots多(在本例中为10)。

[当我看到Flink Dashboard时,我看到此作业仅在一个TaskManager中运行,而另一个TaskManager没有作业。我通过检查安排的每个操作员来验证这一点,在Task Manager UI页面中,管理器之一也具有所有可用插槽。我在下面附上图片以供参考。

我配置错了吗?我的理解力在哪里?有人可以解释吗?

enter image description here

工作 enter image description here

enter image description here

kubernetes apache-flink flink-streaming flink-cep
1个回答
0
投票

第一个任务管理器具有足够的插槽(10),可以完全满足您的工作要求。

调度程序的默认行为是在使用另一个任务管理器中的插槽之前,充分利用一个任务管理器的插槽。如果相反,您希望Flink在所有可用的任务管理器中分配工作负载,请在cluster.evenly-spread-out-slots: true中设置flink-conf.yaml。 (在Flink 1.10中添加了此选项,以重新创建与Flink 1.5之前的默认行为类似的调度行为。)

© www.soinside.com 2019 - 2024. All rights reserved.