网站建设psd,怎么做网站的后台管理系统,网站建设预览,手机上怎么做能打开的网站简介 本系列是flink源码分析的第二个系列#xff0c;上一个《flink源码分析之集群与资源》分析集群与资源#xff0c;本系列分析功能组件#xff0c;kubeclient#xff0c;rpc#xff0c;心跳#xff0c;高可用#xff0c;slotpool#xff0c;rest#xff0c;metrics上一个《flink源码分析之集群与资源》分析集群与资源本系列分析功能组件kubeclientrpc心跳高可用slotpoolrestmetricsfuture。 本文解释slotpool组件严格来说slot组件不属于功能组件而是业务组件包括slotpool和slotmanage资源消费者申请到资源后在本地管有资源slot避免资源管理器异常导致作业运行失败同时资源管理器不可用也不会影响作业的继续执行只有资源不足时才会导致作业执行失败。 slot管理组件也是实现声明式资源管理核心值得我们细细分析。本文slot管理组件II 分析声明式资源管理, slot管理组件I分析slotpool组件的分配/申请资源
检查资源需求/检查资源声明
检查资源需求/检查资源声明是flink声明式资源管理的核心方法
上面的资源场景分为两类提出资源需求和提供资源 检查资源请求/检查资源声明是交汇点处理资源请求该分配的分配该请求新的请求新的资源检查资源声明哪些资源可以释放需要新资源请求新worker。
本章深入分析两方法上游提出资源需求和下游提供资源的串联资源状态演变存储型态
检查资源需求(checkResourceRequirements)
检查资源需求是真正的分配资源
1 获取作业的未完成资源请求 2 尝试分配可用资源到作业 之所以尝试资源变更触发调用检查资源请求但不一定是增加可能是无效分配 slotTracker获取所有可用资源与请求匹配合适的分配allocateSlot该方法对应场景9.6 请求使用资源/提供资源
3 尝试使用待定的资源 待定资源是指申请了新的worker或者将要申请新worker所产生的资源两者都是目前没有物理上的对应资源通俗说就是先占个坑等申请了资源再填回去 同样首先匹配现有的待定资源若还有未分配打开新的待定资源
tryAllocateWorkerAndReserveSlot调用TaskExecutorManager的allocateWorker预先挖好”坑”创建待定资源PendingTaskManagerSlot declareNeededResourcesWithDelay方法下节介绍按需要申请新的worker增加物理资源
到此还有一个问题物理资源到位后怎样填”坑”
自然想到9.5 注册任务管理器/报告资源使用新增资源抵消待定资源
TaskExecutorManager的registerTaskManager方法 检查资源声明(checkResourceDeclarations)
声明资源要申请多少资源可释放多少资源上一节检查资源请求打开新待定资源最终调用checkResourceDeclarations实际申请新worker获得物理资源为了支持动态/静态资源申请中间ResourceAllocator转接了一下这里不详细分析 现有的worker数量-需要的worker数量大于0worker多了可以释放反之worker少了需要打开新worker requestNewWorker参看 请求新worker
ResourceDeclaration怎么来 主要是计算totalWorkerNum目前worker总数量
totalWorkerNum pendingWorkerNum neededRegisteredWorkers
pendingWorkerNum 待定的slots除以每个worker的slots向上修正只多不少
neededRegisteredWorkers是已经注册的worker减去待释放的worker