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

中铁建设集团有限公司门户网站敖汉旗住房和城乡建设局网站

中铁建设集团有限公司门户网站,敖汉旗住房和城乡建设局网站,东莞网页模板建站,个人网站建设 实验报告集群资源管理 一、ResourceManager 概述 1、ResourceManager 作为统一的集群资源管理器#xff0c;用于管理整个集群的计算资源#xff0c;包括 CPU资源、内存资源等。 2、ResourceManager 负责向集群资源管理器申请容器资源启动TaskManager实例#xff0c;并对TaskManag…集群资源管理 一、ResourceManager 概述 1、ResourceManager 作为统一的集群资源管理器用于管理整个集群的计算资源包括 CPU资源、内存资源等。 2、ResourceManager 负责向集群资源管理器申请容器资源启动TaskManager实例并对TaskManager进行集中管理。 3、当新的 Job 提交到集群后JobManager 会向 ResourceManager 申请作业执行需要的计算资源进而完成整个作业的运行。 二、ResourceManager 分类 在ResourceManager抽象实现类的基础上分别实现了ActiveResourceManager、StandaloneResourceManager以及MesosResourceManager等子类。 其中ActiveResourceManager实现了动态资源管理可以根据提交的作业动态选择启动或停止TaskManager实例。 目前支持TaskManager动态管理和启动的ResourceManager主要有KubernetesResourceManager和YarnResourceManager实现类。 三、ResourceManager 功能 ResourceManager通过实现ResourceManagerGateway接口向其他组件提供RPC远程访问能力如TaskManager服务和JobManager服务的ResourceManagerGateway会将RPC访问请求发送到ResourceManager服务中。 ResourceManager继承了FencedRpcEndpoint基本实现类使得ResourceManager可以作为一个RpcEndpoint节点通过ResourceManagerGateway接口提供给其他服务节点使之能够以RPC的方式访问ResourceManager服务。 ResourceManager实现了LeaderContender接口可以作为竞争节点让LeaderElectionService进行Leader节点的选举保证整个集群ResourceManager组件服务的高可用。 四、ResourceManager主要成员变量 resourceldResourceManager对应的唯一资源ID。 jobManagerRegistrations专门存储JobManager注册信息。其中Key为JoblDValue为JobManagerRegistration当启动JobManager服务时就会将JobManager信息注册在jobManagerRegistrations实例中。 jmResourceldRegistrations用于存储JobManager注册信息与jobManagerRegistrations的区别在于Key为ResourcelD。 jobLeaderldService用于获取Job Leader ID的服务在开启的高可用集群中当JobManager的Leader节点发生切换时会借助jobLeaderldService获取当前作业有效的JobID和地址信息。 taskExecutors注册在ResourceManager的TaskExecutor列表中其中Key为TaskExecutor对应的ResourcelDValue为WorkRegistration即TaskExecutor向ResourceManager注册过程中所提供的信息。 taskExecutorGatewayFutures专门存储TaskExecutorGateway的CompletableFuture对象Key为TaskExecutor对应的ResourcelDValue为CompletableFuture用于获取TaskExecutorGateway实现与TaskExecutor之间的RPC通信。 highAvailabilityServices系统高可用服务基于highAvailabilityServices服务支持组件高可用。 heartbeatServices用于创建HeartbeatManager服务和其他组件之间建立心跳连接。 fatalErrorHandler系统异常错误处理当ResourceManager出现异常时调用fatalErrorHandler处理异常错误。 slotManagerResourceManager的内部组件用于管理集群的可用Slot资源同时接收并处理TaskExecutor的SlotReport。 clusterinformation存储整个Flink集群共享的信息包括blobServerHostname和blobServerPort等配置。 resourceManagerMetricGroupResourceManager的MetricGroup用于收集和ResourceManager相关的监控指标。 leaderElectionService基于ZooKeeper实现的Leader选举服务在这里用于实现ResourceManager组件高可用。 taskManagerHeartbeatManager管理与TaskManager之间的心跳信息。 jobManagerHeartbeatManager管理与JobManager之间的心跳信息。 clearStateFuture用于停止ResourceManager后进行数据异步清理。 五、ResourceManagerGateway 接口详解 1、概述 ResourceManagerGateway 接口提供了 ResourceManager 需要的RPC方法供其他集群组件调用。 2、调用关系图 例如在TaskExecutor中调用ResourceManagerGateway完成在ResourceManager中注册TaskExecutor的操作通过对ResourceManagerGateway中提供的RPC方法进行梳理得到JobManager、TaskExecutor、WebMonitorEndpoint和Dispatcher等组件与ResourceManagerGateway之间的RPC调用关系图。 JobManager、TaskExecutor、WebMonitorEndpoint和Dispatcher组件使用如下方法与ResourceManager服务进行交互 1.JobManager和ResourceManager的RPC调用 registerJobManager(): 在ResourceManager中注册JobManager服务此时会在jobLeaderldService服务中添加注册的JobManager信息 requestSlot(): JobManager向ResourceManager申请运行Task所需的Slot资源。 heartbeatFromJobManager(): 用于在JobManager与ResourceManager之间建立长期的心跳连接 disconnectJobManager(): 根据JobID删除之前注册在ResourceManager中的JobManager信息并且关闭JobManager与ResourceManager之间的RPC连接。 2.TaskExecutor和ResourceManager的RPC调用 heartbeatFromTaskManager(): 在TaskExecutor中调用heartbeatFromTaskManager()方法构建TaskExecutor与ResourceManager之间的心跳连接。 disconnectTaskManager():停止TaskExecutor组件时会调用disconnectTaskManager()方法断开TaskExecutor与ResourceManager之间的RPC连接。 registerTaskExecutor(): 当新的TaskExecutor启动时会调用该方法向ResourceManager注册TaskExecutor信息。 sendSlotReport(): 当TaskExecutor启动并注册成功后会调用sendSlotReport()方法向ResourceManager上报SlotReport。SlotReport中包含TaskExecutor的资源数量和配置信息等内容。 notifySlotAvailable(): 当TaskExecutor中具有空闲Slot计算资源时会调用notifySlotAvailable()方法通知ResourceManager将该Slot资源变为Available状态。 cancelSlotRequest(): 取消JobManager已经分配的资源。 3.Dispatcher和ResourceManager的RPC调用 requestResourceOverview(): 用于在Dispatcher中获取集群资源信息包括集群中的TaskManager、numberRegisteredSlots以及numberFreeSlots数量。 requestTaskManagerMetricQueryServiceAddresses(): 从ResourceManager获取TaskManager的MetricQueryService路径主要用于前端获取TaskManager的监控指标。 4.WebMonitorEndpoint和ResourceManager的RPC调用 requestTaskManagerinfo(): 用于获取TaskManager的相关信息即TaskExecutor启动过程中注册在ResourceManager的信息包括TaskExecutor的网关地址、端口以及TaskExecutor的硬件信息。 requestTaskManagerFileUpload(): 请求上传文件到BlobServer上返回TransientBlobKey。 六、Slot计算资源管理 1、概述 ResourceManager内部主要通过SlotManager服务统一对整个集群的Slot计算资源进行管理。 Slot被称为资源卡槽用于表示可以分配的最小计算资源单位提交的Task最终会运行在Slot表示的计算资源中。 2、组件 1SlotManager 包含了Register Slot和Free Slot两个键值对集合 其中Register Slot专门存储ResourceManager中所有已经注册的TaskManagerSlot信息FreeSlot集合则存储了当前SlotManager中处于空闲状态且还没有被分配和使用的Slot集合。 /** Map for all registered slots. */private final HashMapSlotID, TaskManagerSlot slots;/** Index of all currently free slots. */private final LinkedHashMapSlotID, TaskManagerSlot freeSlots;2TaskManagerSlot对象包含了SlotID、ResourceProfile以及TaskExecutorConnection等信息 如果Slot被分配使用在TaskManagerSlot中还会存储AllocationID和JobID等分配信息表明当前Slot已经被指定JobID对应的JobManager使用。 3SlotManager还包含了pendingSlotRequests 和 fulfilledSlotRequests 两个键值对集合 其中 pendingSlotRequests 存储了所有处于 pending 和 unfulfilled 状态的 Slot 请求。 fulfilledSlotRequests 存储了所有已经分配完成的Slot请求。 /** Map of fulfilled and active allocations for request deduplication purposes. */private final HashMapAllocationID, SlotID fulfilledSlotRequests;/** Map of pending/unfulfilled slot allocation requests. */private final HashMapAllocationID, PendingSlotRequest pendingSlotRequests;Slot 资源申请都会以 PendingSlotRequest 的形式存储在 pendingSlotRequests 集合中等待 SlotManager 根据当前集群的 Slot 资源进行分配。 当符合条件的 Slot 资源分配给指定的 PendingSlotRequest 后会为其创建 Allocationld并将分配了 Allocationld 和 Slotld 信息的SlotRequest 存储到 fulfilledSlotRequests 集合中。 3、流程图 1Slot计算资源的注册和管理 1.概述 对Slot计算资源的注册和管理主要是在TaskManager和ResourceManager服务之间进行的TaskManager作为Slot计算资源的提供方ResourceManager则作为Slot计算资源的接收和管理方梳理TaskManager向SlotManager中注册Slot资源的整个过程。 2.流程 a启动TaskManager后调用ResourceManagerGateway.registerTaskExecutor()方法向ResourceManager中注册TaskManager连接信息。 b创建TaskManager和ResourceManager之间的RPC连接TaskManager调用ResourceManagerGateway.sendSlotReport()方法向ResourceManager发送SlotReport信息接着ResourceManager调用SlotManager.registerTaskManager()方法将TaskManager的资源信息写入SlotManager。 c在SlotManager中根据SlotReport中的Slot信息创建TaskManagerSlot并注册到SlotManager的HashMapSlotIDTaskManagerSlot slots集合中。 SlotManager含有HashMapSlotIDTaskManagerSlot slots和LinkedHashMapSlotlDTaskManagerSlot freeSlots两个Slot集合。前者维护所有注册到SlotManager中的Slot计算资源后者存储当前SlotManager中可用的Slot资源。 2为作业申请Slot计算资源 1.概述 在SIotManager中完成SIot资源注册后等待集群提交和运行作业。 JobManager通过调用ResourceManagerGateway中的相关方法为作业申请Slot计算资源。 2.流程 aJobManager调用ResourceManagerGateway.requestSlot()方法向ResourceManager发起Slot计算资源申请。 bResourceManager内部会调用SlotManager.registerSlotRequest()方法向SlotManager申请作业需要的Slot计算资源。 cSlotManager中维护了HashMapAllocationlDPendingSlotRequestpendingSlotRequests集合将所有的PendingSlotRequest存储在该集合中并根据SlotRequest的ResourceProfile匹配合适的Slot计算资源然后对Slot进行分配。 当 SlotRequest 需要的 Slot 计算资源分配完毕后将已经分配的 SlotlD 信息写入 HashMapAllocationlDSlotlD fulfilledSlotRequests集合。 SlotManager 组件会对 Slot 进行统一的管理在内部构建一个 Slot 计算资源池有新的 Slot 注册时会优先从 pendingSlotRequests 集合中获取处于 Pending 状态的 SlotRequest并为该 SlotRequest 分配Slot计算资源。 3流程图
http://www.w-s-a.com/news/121687/

相关文章:

  • 婚庆公司网站模板wordpress用什么框架
  • 高校网站建设的时效性长沙市网站建设
  • 合肥网站建设市场四川建设网官网住房和城乡厅官网官方
  • 天行健君子以自强不息网站建设江西网站做的好的企业文化
  • 建网站内容谷歌搜索引擎优化
  • 网站建设与管理案例教程第三版答案网站建设策划书范文六篇精选
  • 建设工程项目在哪个网站查询实时网站推广的最终目的是
  • 个人网站可以做淘客网站设置的参数
  • 自适应网站制作公司做室内设计通常上的网站
  • 网站建设项目采购公告建设网站公司建网页
  • 自己做网站怎么推广网站建设应该考虑哪些方面
  • 我做的网站手机上不了wordpress插件整站搬家
  • 河南省和建设厅网站首页西安找建网站公司
  • 网页设计基础代码网站进出成都最新通知
  • 如何创建网站乐清网络科技有限公司
  • 沈阳市网站制作艺术字体logo设计生成器
  • 网站设计常用软件都有哪些中国建设银行官方招聘网站
  • 证券投资网站建设视频直播怎么赚钱的
  • 建设酒店网站ppt模板下载郑州小程序设计外包
  • 网站建设自我总结google推广公司
  • 安全网站建设情况wordpress 评论表单
  • 网站建设发言材料个人网站推广软件
  • php建站软件哪个好南京哪家做网站好
  • 排名好的手机网站建设番禺网站建设专家
  • 番禺怎么读百度有专做优化的没
  • 网站开发中应注意哪些问题网络营销的主要特点
  • 网站定制案例北京网站制作招聘网
  • 网站建设与推广实训小结网站建设专业英文
  • 郑州网站建设动态凡科网站建设是免费的吗
  • 湖北手机网站建设wordpress转emlog博客