Flink任务调度,用于具有巨大状态的操作员

时间:2018-12-10 10:25:06

标签: apache-flink

让我们假设有一个设置,在该设置中,我们有一个或多个运算符连接到键控流,并且在该设置中,我们期望每个键有许多键和显着的分区状态(就大小而言)。

是否可以影响哪个任务管理器Flink调度这些操作员实例中的每一个?在具有n个任务管理器和m个操作员实例的设置中,最坏的情况是,这m个实例中的多个(如果不是全部)最终仅位于n个任务管理器中的几个上,因此耗尽了可用资源。

1 个答案:

答案 0 :(得分:2)

目前,Flink平等对待TaskSlot中的每一个。这意味着每个Task应该可部署到每个Slot中。这不仅显着简化了调度逻辑,而且还通过指定无法满足的调度约束来防止用户将自己踢入脚。代价是用户无法控制Tasks在一组可用插槽和TaskManagers上的部署方式。

社区目前正在通过制作Flink的scheduler pluggable来改善Flink的调度功能。通过此更改,我们打算对Flink部署Tasks的方式进行更多控制。