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邮件归档
hi,社区已经发现了这个问题,之前也看到有同学有这样的疑问。
社区会在后续版本中修复,目前规划的是在1.7.3, 1.8.2, 1.9.0几个版本中修复。详情可以参考: https://issues.apache.org/jira/browse/FLINK-12122*来自志愿者整理的flink
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。