Flink的设计与实现:集群资源管理

本文深入探讨了Flink中ResourceManager的角色,它是集群资源的管理者,负责CPU和内存等资源的分配,启动和管理TaskManager。ResourceManager支持与Hadoop Yarn、Kubernetes等集群管理器的兼容,通过ResourceManagerGateway接口与其他组件通信,并实现高可用。此外,它通过SlotManager组件管理Slot资源,用于分配和调度Task执行。
摘要由CSDN通过智能技术生成

导读:本文我们将重点介绍集群运行时中ResourceManager的设计和实现,了解如何通过ResourceManager对集群的计算资源进行有效管理。

作者:张利兵

来源:大数据DT(ID:hzdashuju)

01 ResourceManager详解

ResourceManager作为统一的集群资源管理器,用于管理整个集群的计算资源,包括CPU资源、内存资源等。

同时,ResourceManager负责向集群资源管理器中申请容器资源启动TaskManager实例,并对TaskManager进行集中管理。当新的作业提交到集群后,JobManager会向ResourceManager申请作业执行需要的计算资源,进而完成整个作业的运行。

如图3-12所示,为了兼容Hadoop Yarn、Kubernetes、Mesos等集群资源管理器,在ResourceManager抽象实现类的基础上,分别实现了ActiveResourceManager、Standalone-ResourceManager以及MesosResourceManager等子类。

其中ActiveResourceManager实现了动态资源管理,可以根据提交的作业动态选择启动或停止TaskManager实例。目前支持TaskManager动态管理和启动的ResourceManager主要有KubernetesResourceManager和Yarn-ResourceManager实现类。

▲图3-12 ResourceManager UML关系图

从图3-12中可以看出,ResourceManager通过实现ResourceManagerGateway接口,向其他组件提供RPC远程访问能力,如TaskManager服务和JobManager服务的Resource-ManagerGateway会将RPC访问请求发送到ResourceManager服务中。

另外,Resource-Manager继承了FencedRpcEndpoint基本实现类,使得ResourceManager可以作为一个RpcEndpoint节点,通过ResourceManagerGateway接口提供给其他服务节点,使之能够以RPC的方式访问ResourceManager服务。

同时,ResourceManager实现了LeaderContender接口,可以作为竞争节点让LeaderElectionService进行Leader节点的选举,保证整个集群ResourceManager组件服务的高可用。

从图3-12中也可以看出,ResourceManager主要包含如下成员变量。

  • resourceId:ResourceManager对应的唯一资源ID。

  • jobManagerRegistrations:专门存储JobManager注册信息。其中Key为JobID;Value为JobManagerRegistration,当启动JobManager服务时,就会将JobManager信息注册在jobManagerRegistrations实例中。

  • jmResourceIdRegistrations:用于存储JobManager注册信息,与jobManagerRegistrations的区别在于Key为ResourceID。

  • jobLeaderIdService:用于获取Job Leader ID的服务,在开启的高可用集群中,当JobManager的Leader节点发生切换时,会借助jobLeaderIdService获取当前作业有效的JobID和地址信息。

  • taskExecutors:注册在ResourceManager的TaskExecutor列表中,其中Key为Task-Executor对应的ResourceID,Value为WorkRegistration,即TaskExecutor向Resource-Manager注册过程中所提供的信息。

  • taskExecutorGatewayFutures:专门存储TaskExecutorGateway

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值