zoukankan      html  css  js  c++  java
  • Flink 源码(二十四):Flink 任务调度机制(五)调度

    6 调度 

      调度器是 Flink 作业执行的核心组件,管理作业执行的所有相关过程,包括 JobGraph 到ExecutionGraph 的转换、作业生命周期管理(作业的发布、取消、停止)、作业的 Task 生命周期管理(Task 的发布、取消、停止)、资源申请与释放、作业和 Task 的 Failover 等。
      调度有几个重要的组件:
      ⚫ 调度器:SchedulerNG 及其子类、实现类
      ⚫ 调度策略:SchedulingStrategy 及其实现类
      ⚫ 调度模式:ScheduleMode 包含流和批的调度,有各自不同的调度模式
     
    6.1 调度器
    调度器作用:
    1)作业的生命周期管理,如作业的发布、挂起、取消
    2)作业执行资源的申请、分配、释放
    3)作业的状态管理,作业发布过程中的状态变化和作业异常时的 FailOver 等
    4)作业的信息提供,对外提供作业的详细信息
    看一下源码结构:
    SchedulerNG.java

     

    实现类:DefaultScheduler(1.11 移除了 LegacyScheduler)
    6.2 调度行为
    SchedulingStrategy.java

     

     
    6.3 调度模式 
    ScheduleMode 决定如何启动 ExecutionGraph 中的 Task。Flink 提供 3 中调度模式:
    1)Eager 调度
      适用于流计算。一次性申请需要的所有资源,如果资源不足,则作业启动失败。
    2)分阶段调度
      LAZY_FROM_SOURCES 适用于批处理。从 SourceTask 开始分阶段调度,申请资源的时候,一次性申请本阶段所需要的所有资源。上游 Task 执行完毕后开始调度执行下游的 Task,
    读取上游的数据,执行本阶段的计算任务,执行完毕之后,调度后一个阶段的 Task,依次进行调度,直到作业完成。
    3)分阶段 Slot 重用调度
      LAZY_FROM_SOURCES_WITH_BATCH_SLOT_REQUEST 适用于批处理。与分阶段调度基本一样,区别在于该模式下使用批处理资源申请模式,可以在资源不足的情况下执行作
    业,但是需要确保在本阶段的作业执行中没有 Shuffle 行为。
      目前视线中的 Eager 模式和 LAZY_FROM_SOURCES 模式的资源申请逻辑一样,LAZY_FROM_SOURCES_WITH_BATCH_SLOT_REQUEST 是单独的资源申请逻辑。
    ScheduleMode.java
    6.4 调度策略 
    调度策略有三种实现:
    ⚫ EagerSchedulingStrategy:适用于流计算,同时调度所有的 task
    ⚫ LazyFromSourcesSchedulingStrategy:适用于批处理,当输入数据准备好时(上游处理完)进行 vertices 调度。
    ⚫ PipelinedRegionSchedulingStrategy:以流水线的局部为粒度进行调度
      PipelinedRegionSchedulingStrategy 是 1.11 加入的,从 1.12 开始,将以 pipelined region为单位进行调度。pipelined region 是一组流水线连接的任务。这意味着,对于包含多个 region
    的流作业,在开始部署任务之前,它不再等待所有任务获取 slot。取而代之的是,一旦任何region 获得了足够的任务 slot 就可以部署它。对于批处理作业,将不会为任务分配 slot,也不会单独部署任务。取而代之的是,一旦某个 region 获得了足够的 slot,则该任务将与所有其他任务一起部署在同一区域中。
     
  • 相关阅读:
    IDEA使用总结1-Github下载代码和上传代码到Git
    Mysql-安装指南
    Dubbo安装及其实战1
    分布式设计(学习内容目录--后端架构师)
    elasticsearch安装指导(new)
    浅谈TCP/IP(new 常见面试问题)
    浅谈常用的设计模式(new)
    浅谈Elasicsearch
    浅谈数据库分库分表(new)
    JAVA 电子书下载地址
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14526702.html
Copyright © 2011-2022 走看看