System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及分布式领域,尤其涉及一种资源分配方法、系统、设备及存储介质。
技术介绍
1、flink其核心是用java和scala编写的分布式流数据流引擎。flink以数据并行和流水线方式执行任意流数据程序,flink的流水线运行时系统可以执行批处理和流处理程序。
2、在传统集群中部署flink可能会导致资源分散,难以有效地管理和利用资源。每个作业可能需要独立的资源分配,导致资源浪费和管理复杂度增加。
3、针对上述缺陷,亟需一种资源分配方法、系统、设备及存储介质,能够解决现有技术中采用flink进行数据计算时,难以进行资源分配的问题。
技术实现思路
1、本申请提供一种资源分配方法、系统、设备及存储介质,用以解决采用flink进行数据计算时,难以进行资源分配的问题。
2、第一方面,本申请提供一种资源分配方法,用于资源管理节点,所述资源管理节点与k8s master节点连接,所述k8s master节点中加载flink软件,所述方法包括:
3、接收flink任务,根据第一预设资源量拆分所述flink任务并下发至预设个数的工作节点中,获取挂起任务队列;其中,所述第一预设资源量为所述工作节点能够接受的最大资源量;
4、根据所述挂起任务队列中的最小任务的数据类型获取一个或者多个批任务;其中,所述批任务包括一个或多个单个节点能够完成的最小任务,同一所述批任务中的所述最小任务的所述数据类型相同;
5、针对每个所述批任务,将所述批
6、在一种可能的设计中,所述根据第一预设资源量拆分所述flink任务并下发至预设个数的工作节点中,获取挂起任务队列,包括:
7、将flink任务拆分为多个所述最小任务,将所述最小任务按队列并下发至所述工作节点;
8、在所述工作节点接收的任务所需资源量大于所述第一预设资源量时,确定所述工作节点任务下发完成,将队列中的所述最小任务下发至下一个所述工作节点,直至所有所述工作节点下发完成;
9、将未下发的所述最小任务的任务队列作为挂起任务队列。
10、在一种可能的设计中,所述根据所述挂起任务队列的数据类型获取一个或者多个批任务,包括:
11、遍历所述挂起任务队列中的所述最小任务,获取所述最小任务的元数据信息,解析所述元数据信息获取数据类型;
12、根据所述数据类型将所述最小任务分配至对应的批任务,其中,同一所述批任务中所述最小任务对应的所述数据类型相同。
13、在一种可能的设计中,所述将所述批任务下发至n个所述预设类型的所述虚拟节点,包括:
14、根据所述批任务的所需资源量获取对应的节点数n;
15、向资源池申请n个所述预设类型的所述虚拟节点;其中,所述虚拟节点的可用资源量不小于第三预设资源量;
16、向n个所述虚拟节点下发所述批任务中的任务。
17、在一种可能的设计中,所述根据所述批任务的所需资源量获取对应的节点数n,包括:
18、根据所述批任务所需资源量与第二预设资源量的比值取整后获取节点数n。
19、在一种可能的设计中,所述向所述虚拟节点下发所述批任务,包括:
20、将所述批任务中的最小任务按队列并下发至所述虚拟节点,在所述虚拟节点接收的任务所需资源量大于所述第三预设资源量时,确定所述虚拟节点任务下发完成,将队列中的所述最小任务下发至下一个所述虚拟节点,直至所述批任务下发完成。
21、在一种可能的设计中,所述向资源池申请n个所述预设类型的所述虚拟节点,还包括:
22、通过所述k8s master节点向所述资源池发送第一消息,所述第一消息用于指示资源池新建n个所述虚拟节点,所述第一消息还用于指示所述虚拟节点的所述节点类型为预设类型,所述第一消息还用于所述虚拟节点的可用资源量不小于第三预设资源量;
23、若收到所述资源池发送的第二消息,确定所述虚拟节点申请成功;其中,所述第二消息用于指示新建所述虚拟节点成功,所述第二消息还用于指示所述虚拟节点的地址信息。
24、第二方面,本申请提供一种资源分配系统,包括:
25、资源管理节点,用于执行上述一种资源分配方法;
26、所述k8s master节点,其中加载flink软件,用于接收flink任务并发送至所述资源管理节点;还用于接收资源管理节点下发的最小任务和对应工作节点或虚拟节点,将所述最小任务下发至对应发的所述工作节点或虚拟节点中;其中,所述最小任务为所述资源管理节点拆分获取的。
27、还用于根据资源管理节点的申请向所述资源池申请虚拟节点;向所述资源管理节点返回所述虚拟节点的地址信息;
28、所述工作节点和所述虚拟节点、用于接收和执行所述k8s master节点下发的所述最小任务;
29、资源池、用于根据所述k8s master节点发送的所述申请创建所述虚拟节点;向所述k8s master节点发送所述虚拟节点的地址信息。
30、第三方面,本申请提供一种资源分配设备,所述设备包括:
31、第一分配模块,用于接收flink任务,根据第一预设资源量拆分所述flink任务并下发至预设个数的工作节点中,获取挂起任务队列;其中,所述第一预设资源量为所述工作节点能够接受的最大资源量;
32、分类模块,用于根据所述挂起任务队列中的最小任务的数据类型获取一个或者多个批任务;其中,所述批任务包括一个或多个单个节点能够完成的最小任务,同一所述批任务中的所述最小任务的所述数据类型相同;
33、第二分配模块,用于针对每个所述批任务,将所述批任务下发至n个所述预设类型的虚拟节点;其中,所述预设类型的虚拟节点为所述数据类型对应的虚拟节点。
34、第四方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
35、所述存储器存储计算机执行指令;
36、所述处理器执行所述存储器存储的计算机执行指令,以实现上述一种资源分配方法。
37、第五方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述一种资源分配方法。
38、本申请提供的资源分配方法、系统、设备及存储介质,通过将flink软件部署于k8smaster,k8s master分配flink任务至工作节点后,对于挂起任务,根据挂起任务的数据类型,将挂起任务分配至对应预设类型的虚拟节点中以完成任务,用户无需提前估算资源使用量,也无需按照最大资源量申请资源,提高资源利用率,降低建立集群的经济成本。
本文档来自技高网...【技术保护点】
1.一种资源分配方法,其特征在于,用于资源管理节点,所述资源管理节点与k8smaster节点连接,所述k8s master节点中加载Flink软件,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据第一预设资源量拆分所述Flink任务并下发至预设个数的工作节点中,获取挂起任务队列,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述挂起任务队列的数据类型获取一个或者多个批任务,包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述批任务下发至N个所述预设类型的所述虚拟节点,包括:
5.根据权利要求4所述的方法,其特征在于,所述根据所述批任务的所需资源量获取对应的节点数N,包括:
6.根据权利要求4所述的方法,其特征在于,所述向所述虚拟节点下发所述批任务,包括:
7.根据权利要求4所述的方法,其特征在于,所述向资源池申请N个所述预设类型的所述虚拟节点,还包括:
8.一种资源分配系统,其特征在于,包括:
9.一种资源分配设备,其特征在于,包括:
...
【技术特征摘要】
1.一种资源分配方法,其特征在于,用于资源管理节点,所述资源管理节点与k8smaster节点连接,所述k8s master节点中加载flink软件,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据第一预设资源量拆分所述flink任务并下发至预设个数的工作节点中,获取挂起任务队列,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述挂起任务队列的数据类型获取一个或者多个批任务,包括:
4.根据权利要求1所述的方法,其特征在于,所述将所述批任务下发至n个所述预设类型的所述虚拟节点,包括:
5.根据权利...
【专利技术属性】
技术研发人员:邢云阳,
申请(专利权)人:中国联合网络通信集团有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。