开发者社区> 问答> 正文

Flink目前的Slot分配策略存在的问题

Hi All, 现在申请Slot的流程是 SlotPool -> ResourceManager -> TaskManager -> SlotPool 在ResourceManager中具体选择哪个Slot做分配是根据SlotManager.findMatchingSlot来的,在其中是遍历freeSlots这个LinkedHashMap,如果发现可用,则使用这个Slot。 问题在于freeSlots中的slot一般是在每个TaskManager向ResourceManager注册的时候生成的。里面的内容可能是: Slot1-1, Slot1-2, Slot1-3, Slot1-4, Slot2-1, Slot2-2, Slot2-3, Slot2-4, Slot3-1, Slot3-2, Slot3-3, Slot3-4 那么在分配Slot的时候,就会发生这样的现象,先将一个TaskManager上的Slot全部占用以后,再去把下一个TaskManager上的所有Slot占用。Slot没有在多个TaskManager之间均匀分配。 请问下: 1. 这样会导致某个TM上全部运行某个Job的SubTask。 这样在分布式程序的分布性上面,没有分布在多台机器上,而是分布在了少数的几台机器上。 2. Flink是故意这样设计的吗?是什么原因导致这样的设计方案?*来自志愿者整理的flink邮件归档

展开
收起
雪哥哥 2021-12-07 16:05:29 865 0
1 条回答
写回答
取消 提交回答
  • hi,社区已经发现了这个问题,之前也看到有同学有这样的疑问。

    社区会在后续版本中修复,目前规划的是在1.7.3, 1.8.2, 1.9.0几个版本中修复。详情可以参考: https://issues.apache.org/jira/browse/FLINK-12122*来自志愿者整理的flink

    2021-12-07 16:29:36
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载