• flink集群与资源@k8s源码分析-资源II 资源提供


    1 资源

    资源分析分3部分,资源请求,资源提供,声明式资源管理,本文是第二部分资源提供

    2 注册任务管理器/报告资源

    任务管理器启动后注册到资源管理器,报告自身资源,资源通过这个方式新增的

    1. 任务管理器启动,同时启动高可用组件,触发
    ResourceManagerLeaderListener监听机制,注意,ResourceManagerLeaderListener有两个,一个是作业管理器,一个是任务管理器,这里毫无疑问用任务管理器相关的那个

    2.
    ResourceManagerLeaderListener调用TaskExecutor的notifyOfNewResourceManagerLeader方法

    3.
    notifyOfNewResourceManagerLeader方法使用RegisteredRpcConnection连接到资源管理器

    4. RegisteredRpcConnection连接完成后,触发事件onRegistrationSuccess,onRegistrationSuccess调用资源管理器的sendSlotReport(rpc)方法报告资源

    5. ResourceManager的sendSlotReport方法,调用SlotManager注册任务管理器和登记资源

    6. 最后采用延时异步方式执行《检查资源请求》,有了新资源,资源变更了,触发处理资源请求

    3 请求使用资源(request slots)/提供资源(offer slots)

    调度器申请和分配资源,匹配了合适的空闲资源,资源管理器请求资源所属的任务管理器使用资源,任务管理器确认提供资源

    资源请求使用和提供两步操作,资源管理器不直接使用资源,主要让资源使用情况放在任务管理器资源管理器下线, 选出新资源管理器master,任务管理器重新注册,恢复资源使用情况

    1. 调度器分配资源完成,向资源所在的任务管理器TaskExecutor发出使用请求requestSlot

    2. TaskExecutor调用allocateSlotForJob,登记资源使用,登记信息包括jobId, slotId, allocationId, resourceProfile, targetAddress

    3. TaskExecutor rpc-offerSlots通知JobMaster,确认提供资源

    4. JobMaster转交SlotPool的offerSlots处理,同样,最终处理是DeclarativeSlotPool

    5. DeclarativeSlotPool的
    matchOfferWithOutstandingRequirements匹配offerSlot与未完成的资源请求,构建AllocatedSlot

    6. 最后AllocatedSlot放入资源slot分配池AllocatedSlotPool,返回接收的offerSlots给TaskExecutor处理,没有匹配部分不接收

  • 相关阅读:
    [附源码]计算机毕业设计JAVAJAVA大方汽车租赁管理系统
    磁盘IO体系架构与存储解决方案
    MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded
    tf.Variable
    Nginx核心要领十五:离线安装Nginx
    2022年高教社杯国赛C题 | 古代玻璃制品的成分分析与鉴别(Matlab实现)
    ACP敏捷.知识领域学习
    设计模式之创建型模式:原型模式
    Unity延时函数
    大数据毕业设计选题推荐-农作物观测站综合监控平台-Hadoop-Spark-Hive
  • 原文地址:https://blog.csdn.net/szlhj/article/details/133076790