让我们假设有一个设置,在该设置中,我们有一个或多个运算符连接到键控流,并且在该设置中,我们期望每个键有许多键和显着的分区状态(就大小而言)。
是否可以影响哪个任务管理器Flink调度这些操作员实例中的每一个?在具有n个任务管理器和m个操作员实例的设置中,最坏的情况是,这m个实例中的多个(如果不是全部)最终仅位于n个任务管理器中的几个上,因此耗尽了可用资源。
答案 0 :(得分:2)
目前,Flink平等对待Task
和Slot
中的每一个。这意味着每个Task
应该可部署到每个Slot
中。这不仅显着简化了调度逻辑,而且还通过指定无法满足的调度约束来防止用户将自己踢入脚。代价是用户无法控制Tasks
在一组可用插槽和TaskManagers
上的部署方式。
社区目前正在通过制作Flink的scheduler pluggable来改善Flink的调度功能。通过此更改,我们打算对Flink部署Tasks
的方式进行更多控制。