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处理,没有匹配部分不接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值