赞
踩
本内容是根据 Flink 1.18.0-Scala_2.12 版本源码梳理而来。本文主要讲述任务提交时,为 Task 分配资源的过程。
以下是具体步骤讲解:
DefaultScheduler
、AdaptiveScheduler
和 AdaptiveBatchScheduler
。DefaultScheduler
,其使用 PipelinedRegionSchedulingStrategySchedulingStrategy
作为他的调度PipelinedRegionSchedulingStrategySchedulingStrategy
,它会使用 SlotSharingStrategy
和 SlotSelectionStrategy
来决定调度策略。SlotSharingStrategy
负责将某些 SubTask 放在同一 Slot 中,此时产生的 Slot 叫做 SharedSlot。SharedSlot 只是一个逻辑概念,不是具体的物理资源。共享的策略目前只有 LocalInputPreferredSlotSharingStrategy
。SlotSelectionStrategy
来为 SharedSlot 选择物理资源。为其选择的物理资源被称为 PhysicalSlot。SlotSelectionStrategy
根据某种策略,从 SlotPool 中挑选 PhysicalSlot 分配给 SharedSlot。这个策略目前有 DefaultLocationPreferenceSlotSelectionStrategy
和 EvenlySpreadOutLocationPreferenceSlotSelectionStrategy
。DeclarativeSlotManager
和 FineGrainedSlotManager
。DeclarativeSlotManager
支持作业级动态调度,FineGrainedSlotManager
支持任务级动态调度。早期版本还有 SlotManagerImpl
,其只支持静态调度,已被抛弃。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。