Flink调度之调度器、调度策略、调度模式

  • 调度器
    SchedulerNG:
    介绍:
    是Flink从1.10版本开始引入的新的任务调度器,相比之前的调度器具有更高的性能和可扩展性。
    特性:
    1、负责将任务分配给可用的执行槽,并管理执行槽的生命周期。
    2、根据任务的需求和执行槽的资源情况,动态地决定任务在哪个执行槽上执行,并实现任务和执行槽之间的匹配和调度。
    3、采用了基于优先级的任务调度算法,可以根据任务的优先级和需求对任务进行排序和调度。
    4、提供了资源管理、心跳检测、故障恢复等功能,可以实现任务的高效执行和容错能力。
    5、具有更高的性能和可扩展性,可以支持数万个执行槽和数百个任务的调度,同时保持较低的延迟和高吞吐量。

  • 调度策略
    SchedulingStrategy:
    介绍:
    SchedulingStrategy主要用于定义任务调度的策略,即如何将任务分配给可用的执行槽。不同的SchedulingStrategy会采用不同的调度策略,以满足不同的需求和场景。
    支持策略:
    EagerSchedulingStrategy:适用于流计算,同时调度所有的task
    LazyFromSourcesSchedulingStrategy:适用于批处理,当输入数据准备好时(上游处理完)进行vertices调度。
    PipelinedRegionSchedulingStrategy:以流水线的局部为粒度进行调度。

  • 调度模式
    ScheduleMode:
    介绍:
    用于指定任务的调度模式,即如何将任务分配到可用的执行槽中。
    支持模式
    Eager调度:
    适用于流计算。一次性申请需要的所有资源,如果资源不足,则作业启动失败。
    分阶段调度:
    LAZY_FROM_SOURCES适用于批处理。从SourceTask开始分阶段调度,申请资源的时候,一次性申请本阶段所需要的所有资源。上游Task执行完毕后开始调度执行下游的Task,读取上游的数据,执行本阶段的计算任务,执行完毕之后,调度后一个阶段的Task,依次进行调度,直到作业完成。
    分阶段Slot重用调度:
    LAZY_FROM_SOURCES_WITH_BATCH_SLOT_REQUEST适用于批处理。与分阶段调度基本一样,区别在于该模式下使用批处理资源申请模式,可以在资源不足的情况下执行作业,但是需要确保在本阶段的作业执行中没有Shuffle行为。

请使用浏览器的分享功能分享到微信等