当前位置: 首页 > news >正文

21. `taskSlotTable`和`jobLeaderService`启动

taskSlotTablejobLeaderService启动

TaskSlotTable

  • TaskSlotTable 是一个用于管理 TaskExecutor 上 Slot 使用情况的接口。它负责记录与管理已分配的 Slot 信息,包括 Slot 的分配、释放以及当前资源占用状态等。
  • 实现类是 TaskSlotTableImpl
  • 在 TaskExecutor 中,TaskSlotTable 主要承担以下职责:
    • 管理当前已使用的 TaskSlots;
    • 提供 Slot 报告(SlotReport)以供 ResourceManager 汇总掌握节点资源情况;
    • 支持 Slot 状态变更的操作接口,如分配与释放。

start方法

  • TimerService:专门用于管理注册的超时 Slot,负责定时检查并触发超时处理。它是一个通用的定时任务调度组件,管理所有已注册的超时槽位。
  • DefaultTimerServiceTimerService 的具体实现类,内部维护了定时器和任务队列,用于实际的超时检测与回调。
  • TimeoutListener:负责处理 Slot 超时事件的监听接口。当某个 Slot 超时后,TimerService 会回调该接口通知处理。
  • TaskSlotTableImpl:实现了 TimeoutListener,作为监听者来接收超时回调。它会根据 Slot 超时情况,执行具体的回收、释放逻辑。
  • SlotActions:定义了对 Slot 状态的操作接口(如释放、标记空闲等),是执行具体 Slot 资源管理动作的抽象层。
  • SlotActionsImplSlotActions 的实现类,负责执行实际的 Slot 回收与资源释放操作。
@Overridepublic void start(SlotActions initialSlotActions, ComponentMainThreadExecutor mainThreadExecutor) {Preconditions.checkState(state == State.CREATED,"The %s has to be just created before starting",TaskSlotTableImpl.class.getSimpleName());this.slotActions = Preconditions.checkNotNull(initialSlotActions);this.mainThreadExecutor = Preconditions.checkNotNull(mainThreadExecutor);timerService.start(this);state = State.RUNNING;}
  • 这部分内容可以等讲解客户端提交任务并向 ResourceManager 申请资源时,再详细展开。到时可以顺着 timerService 这条线,结合 Slot 分配的流程,具体说明超时 Slot 是如何注册和回收的。

JobLeaderService

  • JobLeaderService 主要负责为 TaskExecutor 提供 JobMaster 的发现服务。
  • 在这个过程中,需要注册一个监听器,用于感知新的 JobMaster 启动或变更。这个监听器就是 initialJobLeaderListener
  • 由于这部分与启动流程关系不大,等到客户端向 ResourceManager 申请资源、以及 TaskExecutor 与 JobMaster 建立联系的环节,再详细展开讲解。
http://www.dtcms.com/a/293261.html

相关文章:

  • 使用空间数据训练机器学习模型的实用工作流程
  • An error occurred at line: 1 in the generated java file问题处理及tomcat指定对应的jdk运行
  • Dify工作流:爬虫文章到AI知识库
  • 【OD机试】数组和最大
  • Java基础环境配置
  • 从零开始学习大模型之文本数据处理
  • BEV-LaneDet
  • 网络编程---网络基础知识
  • 【文本分析】使用LDA模型进行主题建模——李牧南等(2024)《科研管理》、马鸿佳等(2025)《南开管理评论》的复现
  • 24. 两两交换链表中的节点
  • 线程池excutor 和 submit区别 关于异常处理,请详细说明,会吞掉异常吗,需要捕获吗
  • vue3:十八、内容管理-实现行内图片的预览、审核功能
  • Python--numpy基础知识
  • 海洋大地测量基准与水下导航系列之九我国海洋PNT最新技术进展(中)
  • Qt开发环境搭建全攻略(Windows+Linux+macOS)
  • 14.8 LLaMA2-7B×Dolly-15K实战:从准确率63%到89%,如何用优质数据让大模型性能飙升42%?
  • 17-VRRP
  • 汉诺塔问题
  • 阿里Seata事务模式场景化选型指南
  • Java学习-------事务失效
  • 第二章 JS进阶 【5. Date(日期对象)】
  • 坑机介绍学习研究
  • Linux 使用 screen 窗口会话稳定挂载jar包到后台运行
  • 【图像认知与处理】OpenCV基础学习
  • 每日数据推荐:成都市AOI面数据
  • 疯狂星期四文案网第15天运营日记
  • 【langchain】3分钟构建一个上下文聊天机器人
  • 高可用架构模式——FMEA方法(排除架构可用性隐患的利器)
  • linux辅助知识(Shell 脚本编程)
  • Agent 工具箱:一步步搭建你的第一个 MCP 服务