资源管理方法、装置及设备

阅读: 评论:0

著录项
  • CN202110626971.7
  • 20210604
  • CN113360284A
  • 20210907
  • 深圳前海微众银行股份有限公司
  • 黄山;尹强;王和平;刘有;杨峙岳;邸帅;卢道和
  • G06F9/50
  • G06F9/50

  • 广东省深圳市前海深港合作区前湾一路1号A栋201室(入驻深圳市前海商务秘书有限公司)
  • 广东(44)
  • 深圳市世纪恒程知识产权代理事务所
  • 胡拥军
摘要
本发明公开了一种资源管理方法、装置及设备,所述方法包括:接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第一标签组匹配成功的第一匹配资源;检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。本发明通过标签信息来标识和划分资源,提高了资源分配的灵活度。
权利要求

1.一种资源管理方法,其特征在于,所述方法包括以下步骤:

接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

2.如权利要求1所述的资源管理方法,其特征在于,所述将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与各所述第一标签信息对应匹配成功的预设标签信息所关联的目标标签编号的步骤包括:

对于所述资源申请请求携带的第一标签组中的各条第一标签信息,分别提取各所述第一标签信息中的各标签值;

在预设快速查询表中查各所述标签值,并获取查到的标签值在所述预设快速查询表中关联的标签编号;

若在预设标签表中查到所述标签编号,则将所述标签编号作为目标标签编号,其中,所述预设标签表中的一行记录包括一条预设标签信息和所述预设标签信息关联的标签编号,所述预设快速查询表中的一行记录包括一条预设标签信息中的一个标签值和所述预设标签信息关联的标签编号。

3.如权利要求1或2任一项所述的资源管理方法,其特征在于,所述第一标签组中包括一条用于唯一标识所述资源使用者的使用者标签信息,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,还包括:

新增一项资源,并将所述申请资源数量作为新增资源的锁定资源数量;

将所述新增资源与所述第一标签组中的各所述第一标签信息分别进行关联。

4.如权利要求3所述的资源管理方法,其特征在于,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,还包括:

接收所述资源使用者的资源使用上报信息,将所述资源使用信息携带的第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第二标签组匹配成功的第二匹配资源,其中,所述第二标签组与所述第一标签组相同;

检测各项所述第二匹配资源的锁定资源数量是否都不小于所述资源使用上报信息中的实际使用资源数量;

若是,则按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量。

5.如权利要求4所述的资源管理方法,其特征在于,所述按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量的步骤之后,还包括:

接收所述资源使用者的资源回收请求,将所述资源回收请求携带的第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第三标签组匹配成功的第三匹配资源,其中,所述第三标签组与所述第一标签信息组;

检测各项所述第三匹配资源的已使用资源数量是否都不小于所述资源使回收请求中的回收资源数量;

若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收。

6.如权利要求5所述的资源管理方法,其特征在于,所述若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收的步骤之后,还包括:

检测所述第三匹配资源中与所述使用者标签信息存在关联关系的目标资源的已使用资源数量是否为零;

若是,则删除所述目标资源。

7.如权利要求1或2任一项所述的资源管理方法,其特征在于,所述方法还包括:

根据资源注册请求携带的资源数量信息新增一项资源,并将所述资源注册请求携带的各条第四标签信息分别与新增资源进行关联,其中,所述资源注册请求由资源提供者发起或者根据针对资源使用者设置的资源使用限制信息生成,当根据所述资源使用限制信息生成时,根据所述资源使用限制信息中的限制条件生成各条所述第四标签信息以及根据所述资源使用限制信息中的限制资源数量生成所述资源数量信息。

8.如权利要求1或2任一项所述的资源管理方法,其特征在于,所述方法还包括:

接收资源下线请求,并将所述资源下线请求携带的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以在各所述预设资源中查待下线资源,其中,所述待下线资源为关联有与各所述第五标签信息对应相同的标签信息的资源;

若查到所述待下线资源,则将所述待下线资源的资源数量信息以及所述待下线资源与标签信息之间的关联信息进行删除,以对所述待下线资源进行下线。

9.一种资源管理装置,其特征在于,所述装置包括:

接收模块,用于接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

第一检测模块,用于将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

第二检测模块,用于若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

确定模块,用于若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

10.一种资源管理设备,其特征在于,所述资源管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源管理程序,所述资源管理程序被所述处理器执行时实现如权利要求1至8中任一项所述的资源管理方法的步骤。

说明书
技术领域

本发明涉及大数据技术领域,尤其涉及一种资源管理方法、装置及设备。

Yarn(YetAnotherResourceNegotiator)是一种资源管理系统,通过一个资源管理器负责集中所有资源的统一管理和分配。具体是将集中的资源按照队列的维度进行划分,提前指定每个节点属于哪个队列,资源使用者(用户)在申请资源时可以指定要使用哪个队列中的资源,如果这个使用者当前申请的资源数量未超过限制,就可以申请成功。这种资源管理方法只能提前将管控的粒度定死,例如队列、用户等维度,不能支持按照实际需求动态调整插入其他粒度,从而导致在制定资源分配策略后,无法做到随时对资源进行分割和归总,资源的管理方式不够灵活。

本发明的主要目的在于提供一种资源管理方法、装置及设备,旨在解决现有的资源管理系统无法做到随时对资源进行分割和归总,资源的管理方式不够灵活的技术问题。

为实现上述目的,本发明提供一种资源管理方法,所述方法包括以下步骤:

接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

可选地,所述将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与各所述第一标签信息对应匹配成功的预设标签信息所关联的目标标签编号的步骤包括:

对于所述资源申请请求携带的第一标签组中的各条第一标签信息,分别提取各所述第一标签信息中的各标签值;

在预设快速查询表中查各所述标签值,并获取查到的标签值在所述预设快速查询表中关联的标签编号;

若在预设标签表中查到所述标签编号,则将所述标签编号作为目标标签编号,其中,所述预设标签表中的一行记录包括一条预设标签信息和所述预设标签信息关联的标签编号,所述预设快速查询表中的一行记录包括一条预设标签信息中的一个标签值和所述预设标签信息关联的标签编号。

可选地,所述第一标签组中包括一条用于唯一标识所述资源使用者的使用者标签信息,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,还包括:

新增一项资源,并将所述申请资源数量作为新增资源的锁定资源数量;

将所述新增资源与所述第一标签组中的各所述第一标签信息分别进行关联。

可选地,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,还包括:

接收所述资源使用者的资源使用上报信息,将所述资源使用信息携带的第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第二标签组匹配成功的第二匹配资源,其中,所述第二标签组与所述第一标签组相同;

检测各项所述第二匹配资源的锁定资源数量是否都不小于所述资源使用上报信息中的实际使用资源数量;

若是,则按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量。

可选地,所述按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量的步骤之后,还包括:

接收所述资源使用者的资源回收请求,将所述资源回收请求携带的第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第三标签组匹配成功的第三匹配资源,其中,所述第三标签组与所述第一标签信息组;

检测各项所述第三匹配资源的已使用资源数量是否都不小于所述资源使回收请求中的回收资源数量;

若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收。

可选地,所述若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收的步骤之后,还包括:

检测所述第三匹配资源中与所述使用者标签信息存在关联关系的目标资源的已使用资源数量是否为零;

若是,则删除所述目标资源。

可选地,所述方法还包括:

根据资源注册请求携带的资源数量信息新增一项资源,并将所述资源注册请求携带的各条第四标签信息分别与新增资源进行关联,其中,所述资源注册请求由资源提供者发起或者根据针对资源使用者设置的资源使用限制信息生成,当根据所述资源使用限制信息生成时,根据所述资源使用限制信息中的限制条件生成各条所述第四标签信息以及根据所述资源使用限制信息中的限制资源数量生成所述资源数量信息。

可选地,所述方法还包括:

接收资源下线请求,并将所述资源下线请求携带的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以在各所述预设资源中查待下线资源,其中,所述待下线资源为关联有与各所述第五标签信息对应相同的标签信息的资源;

若查到所述待下线资源,则将所述待下线资源的资源数量信息以及所述待下线资源与标签信息之间的关联信息进行删除,以对所述待下线资源进行下线。

为实现上述目的,本发明还提供一种资源管理装置,所述装置包括:

接收模块,用于接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

第一检测模块,用于将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

第二检测模块,用于若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

确定模块,用于若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

为实现上述目的,本发明还提供一种资源管理设备,所述资源管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的资源管理程序,所述资源管理程序被所述处理器执行时实现如上所述的资源管理方法的步骤。

此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有资源管理程序,所述资源管理程序被处理器执行时实现如上所述的资源管理方法的步骤。

相比于现有的资源管理方法只能提前将管控的粒度定死,不能支持按照实际需求动态调整插入其他粒度,本发明中,通过将各项资源与标签信息进行关联,并通过资源使用者在申请资源时在资源申请请求中携带包括一个或多个标签信息的标签组,资源管理器将标签组中的标签信息与各项资源关联的标签信息进行匹配,得到与标签组匹配的匹配资源,在匹配资源的可使用资源数量都不小于资源申请请求中的申请资源数量时通过资源使用者的资源申请,并按照申请资源数量对匹配资源的可使用资源进行锁定,实现了通过标签信息来标识和划分资源,通过标签信息的灵活设置能够从不同的粒度去划分资源,并且,在资源申请过程中通过标签匹配方式来分配资源,使得资源管理者可以随时通过更改资源关联的标签信息来对资源进行重新划分或归总,提高了资源分配的灵活度。

图1为本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明资源管理方法第一实施例的流程示意图;

图3为本发明实施例涉及的一种资源和标签的表格示意图;

图4为本发明资源管理装置较佳实施例的功能模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

需要说明的是,本发明实施例资源管理设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。

如图1所示,该资源管理设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对资源管理设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及资源管理程序。操作系统是管理和控制设备硬件和软件资源的程序,支持资源管理程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的资源管理程序,并执行以下操作:

接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

进一步地,所述将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与各所述第一标签信息对应匹配成功的预设标签信息所关联的目标标签编号的步骤包括:

对于所述资源申请请求携带的第一标签组中的各条第一标签信息,分别提取各所述第一标签信息中的各标签值;

在预设快速查询表中查各所述标签值,并获取查到的标签值在所述预设快速查询表中关联的标签编号;

若在预设标签表中查到所述标签编号,则将所述标签编号作为目标标签编号,其中,所述预设标签表中的一行记录包括一条预设标签信息和所述预设标签信息关联的标签编号,所述预设快速查询表中的一行记录包括一条预设标签信息中的一个标签值和所述预设标签信息关联的标签编号。

进一步地,所述第一标签组中包括一条用于唯一标识所述资源使用者的使用者标签信息,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

新增一项资源,并将所述申请资源数量作为新增资源的锁定资源数量;

将所述新增资源与所述第一标签组中的各所述第一标签信息分别进行关联。

进一步地,所述按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定的步骤之后,处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

接收所述资源使用者的资源使用上报信息,将所述资源使用信息携带的第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第二标签组匹配成功的第二匹配资源,其中,所述第二标签组与所述第一标签组相同;

检测各项所述第二匹配资源的锁定资源数量是否都不小于所述资源使用上报信息中的实际使用资源数量;

若是,则按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量。

进一步地,所述按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量的步骤之后处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

接收所述资源使用者的资源回收请求,将所述资源回收请求携带的第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第三标签组匹配成功的第三匹配资源,其中,所述第三标签组与所述第一标签信息组;

检测各项所述第三匹配资源的已使用资源数量是否都不小于所述资源使回收请求中的回收资源数量;

若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收。

进一步地,所述若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收的步骤之后,处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

检测所述第三匹配资源中与所述使用者标签信息存在关联关系的目标资源的已使用资源数量是否为零;

若是,则删除所述目标资源。

进一步地,处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

根据资源注册请求携带的资源数量信息新增一项资源,并将所述资源注册请求携带的各条第四标签信息分别与新增资源进行关联,其中,所述资源注册请求由资源提供者发起或者根据针对资源使用者设置的资源使用限制信息生成,当根据所述资源使用限制信息生成时,根据所述资源使用限制信息中的限制条件生成各条所述第四标签信息以及根据所述资源使用限制信息中的限制资源数量生成所述资源数量信息。

进一步地,处理器1001还可以用于调用存储器1005中存储的资源管理程序,执行以下操作:

接收资源下线请求,并将所述资源下线请求携带的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以在各所述预设资源中查待下线资源,其中,所述待下线资源为关联有与各所述第五标签信息对应相同的标签信息的资源;

若查到所述待下线资源,则将所述待下线资源的资源数量信息以及所述待下线资源与标签信息之间的关联信息进行删除,以对所述待下线资源进行下线。

基于上述的结构,提出资源管理方法的各个实施例。

参照图2,图2为本发明资源管理方法第一实施例的流程示意图。

本发明实施例提供了资源管理方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明资源管理方法各个实施例的执行主体可以是智能手机、个人计算机和服务器等设备,为便于描述,以下各实施例中以资源管理器(或简称为管理器)为执行主体进行阐述。在本实施例中,资源管理方法包括:

步骤S10,接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息对应匹配成功的预设标签信息所关联的目标标签编号;

在本实施例中,资源是指计算机程序运行时所需的CPU资源、内存资源、硬盘资源和网络资源等。资源管理器中可以预先记录多项资源,也即各项预设资源,并可通过一条资源数量信息来表示该资源的大小,例如,资源数量信息可以包括资源类型、最大资源数量、最小资源数量、已使用资源数量、剩余资源数量(或称为可使用资源数量)和锁定资源数量。其中,资源类型可以包括CPU、内存、硬盘和网络等资源;最大资源数量即该项资源总共的资源数量;最小资源数量即一个可申请资源的临界值,当剩余资源数量小于该最小资源数量时,就不可再将该资源分配给资源使用者;已使用资源数量即已经被分配给资源使用者使用的资源数量;剩余资源数量即还未被分配和锁定的资源数量;锁定资源数量即被分配给资源使用者但还未实际被使用的资源数量。管理器中可通过资源编号来区分各项资源。预先可以在资源管理器中给各项资源分别打上一个或多个标签,也即,每项资源可关联一条或多条标签信息,用以标识这项资源。在其他实施方式中,也可以由资源提供者向资源管理器上报自己的资源,并在上报信息中携带资源数量信息和标签信息,资源管理器根据上报信息中的资源数量信息新增一项资源,并将该项资源与上报信息中携带的标签信息进行关联。

其中,一条标签信息可以包括一个标签名和至少一个标签值。标签名是指将在多种事物上存在的属性抽象出来之后,所形成的可以用来标识某个事务的特征的一些描述性词汇(比如:颜、种类、高度等)。标签值,是指某个事务实际上拥有的某个属性的表现形式(比如:红、蓝,大型、小型,高、中、低等)。这样,通过一系列标签的指定,即可从一事物中匹配到一个更小的范围。本实施例中涉及的标签名可以是任意能够从各种资源提供者或各种资源使用者存在的属性中抽象出的描述性词汇,例如,引擎类型(engineType)、服务别名(serverAlias)、集名称(cluster)、用户(user)等等。也即,可以通过资源的提供者或使用者的任意属性来标识这项资源,其中,通过资源提供者的属性来标识这项资源,可用于限定这项资源是由谁提供的,通过资源使用者的属性来标识这项资源,可用于限定这项资源能够被谁使用。

资源使用者在需要使用资源时可向资源管理器发送资源申请请求,其中,资源使用者即需要对某类资源进行使用的对象,例如某个进程,在本实施例中对资源使用者的类型并不做限制。资源使用者的资源申请请求中可以携带至少一条标签信息,由于可以携带多条标签信息,所以将各条标签信息的组合称为标签组。以下为示区别,在一些描述中将资源申请请求携带的标签组和标签信息分别称为第一标签组和第一标签信息。预先可以设置资源使用者在生成资源申请请求时需要携带的标签信息,或者,管理人员可以随时地根据需要为各个资源使用者配置在生成资源申请请求时需携带的标签信息。同样地,资源申请请求中携带的标签信息可以用于标识资源使用者自己,也可以用于标识资源提供者。

管理器接收资源使用者的资源申请请求,并提取资源申请请求中的第一标签组,将第一标签组中的各条第一标签信息与各项预设资源关联的标签信息进行匹配,到与第一标签组匹配成功的资源。以下将与第一标签组匹配成功的资源称为第一匹配资源。根据具体应用场景不同,对标签组与资源是否匹配成功的判断规则可不同;例如,可以是一项资源关联的各条标签信息与第一标签组中的各条标签信息都对应相同,即可确定该项资源与第一标签组匹配成功;或者,也可以是一项资源关联的各条标签信息都能在第一标签组中到相同的标签信息,即可确定该项资源与第一标签组匹配成功,也即,该项资源关联的标签信息都被第一标签组包括,但第一标签组中的标签信息可以不一定都是该项资源关联的标签信息。可以理解的是,在本实施例中,对标签组与资源是否匹配成功的判断规则并不做限制。

在一实施方式中,具体提出一种判断标签组与资源是否匹配成功的判断规则,也即,当一项资源关联的各条标签信息都能在标签组中到相同的标签信息,即可确定该项资源与该标签组匹配成功。

根据该判断规则,资源管理器可先提取资源申请请求中携带的第一标签组,将第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配。具体地,在一实施方式中,资源管理器可以将每一条第一标签信息分别与各条预设标签信息进行一一比对,以确定是否有与该第一标签信息相同的预设标签信息,两个标签信息相同即标签名和标签值都对应相同;若有与第一标签信息相同的预设标签信息,即可确定该预设标签信息与该第一标签信息匹配成功,将该预设标签信息关联的标签编号(或称为标签ID)作为目标标签编号。在其他实施方式中,也可以是资源管理器将每一条第一标签信息中的每个标签值分别与各条预设标签信息的标签值进行一一比对,以确定是否与第一标签信息中的该标签值相同的标签值,若有,则将相同的标签值对应的预设标签信息的标签编号作为目标标签编号;这种情况下,当一个第一标签信息中包括多个标签值时,采用该第一标签信息进行匹配可能会匹配到多个目标标签编号。

资源管理器采用各条第一标签信息分别进行匹配,得到与其中一些第一标签信息匹配成功的预设标签信息所关联的目标标签编号。若有多条第一标签信息都有匹配成功,则最终得到的目标标签编号有多个。在一实施方式中,若每条第一标签信息都未匹配成功,则资源管理器可以确定资源申请不通过,也即没有到与资源申请请求中的标签匹配的资源。

其中,预设标签信息即预先在资源管理器中记录的与各项资源关联的标签信息。各条预设标签信息采用标签编号来进行区分,也即每条预设标签信息关联一个唯一的标签编号,通过将标签编号与资源编号相关联的方式,来将标签信息与资源进行关联。具体地,在一实施方式中,可以采用一个标签表来存储各条预设标签信息,标签表中的一行记录包括一条预设标签信息与该预设标签信息关联的标签编号;采用一个资源表来存储各项资源,资源表中的一行记录包括一项资源的资源编号和该项资源的资源数量信息;再采用一个资源标签关联表来存储资源和标签之间的关联关系,资源标签关联表中的一行记录包括一个标签编号和一个资源编号。可以理解的是,同一条标签信息可以关联多项资源,一项资源也可以关联不同的多条标签信息。

进一步地,在一实施方式中,预先可以设置不参与匹配的标签信息,或者资源使用者在资源申请请求中标记不参与匹配的第一标签信息,资源管理器对于不参与匹配的第一标签信息,可以在匹配时不对该第一标签信息进行匹配。例如,资源使用者在申请资源时一般会携带一个引擎实例标签信息,而该引擎实例标签信息是每个资源使用者唯一的,一般不会与资源进行关联,所以可以将该引擎实例标签信息设置为不参与匹配,以减少不必要的计算。

步骤S20,将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

资源管理器在匹配得到目标标签编号后,可以将与该目标标签编号关联的资源作为候选资源。具体地,在一实施方式中,可以查资源标签关联表,查到该目标标签编号所在的记录,提取该记录中与该目标标签编号关联存储的资源编号,该资源编号即候选资源的资源编号。

在得到候选资源后,资源管理器可先查到与候选资源关联的各条可以匹配的预设标签信息。其中,一项资源关联的多条预设标签信息中,可以预先设置不参与匹配的标签信息,例如,引擎管理器标签信息大多情况下是指明资源提供者所在的机器和端口,而资源使用者无需每次申请都指定机器和端口的范围,所以该标签信息可以设置为不参与匹配。资源管理器检测候选资源关联的各条可匹配的预设标签信息是否都在第一标签组中存在匹配成功的标签信息。其中,一条预设标签信息在第一标签组中存在匹配成功的标签信息,即第一标签组中存在一条标签信息与该预设标签信息相同;一条预设标签信息在第一标签组中不存在匹配成功的标签信息,即第一标签组中的各条标签信息与该条预设标签信息都不同。

在一实施方式中,资源管理器可以先查资源标签关联表,查到候选资源的资源编号所在的记录,提取该记录中与该资源编号关联存储的标签编号。可以理解的是,一项资源关联多条标签信息时,根据候选资源的资源编号可以查到多个标签编号。根据查到的每个标签编号,在标签表中到该标签编号所在的记录,提取该记录中与该标签编号关联存储的标签信息,即提取到了与候选资源关联的各条预设标签信息。对于与候选资源关联的每条可已参与匹配的预设标签信息,将该预设标签信息分别与第一标签组中的各条第一标签信息进行比对,确定第一标签组中是否存在与该预设标签信息相同的标签信息。

步骤S30,若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

若候选资源关联的各条可匹配的预设标签信息在第一标签组中都存在匹配成功的标签信息,则资源管理器可以确定该候选资源与第一标签组匹配成功,即将该候选资源作为第一匹配资源。需要说明的是,当候选资源有多项时,对每项候选资源均按照上述步骤判断是否与第一标签组匹配成功。

与第一标签组匹配成功的第一匹配资源可能有一项或多项,资源管理器在确定第一匹配资源后,可以检测各项第一匹配资源的可使用资源数量是否都不小于资源申请请求中的申请资源数量。其中,资源管理器中对各项资源的可使用资源数量进行记录,当没有被申请时,可使用资源数量是该项资源的最大资源数量,当资源被申请一部分后,可使用资源数量对应地减少,已使用资源数量对应地增加。资源使用者的资源申请请求中可携带申请资源数量,也即需要申请的资源数量,例如,需要CPU10个和100G内存。

步骤S40,若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

若资源管理器检测到各项第一匹配资源的可使用资源数量都不小于申请资源数量,则说明各项第一匹配资源都可以被分配给资源使用者使用,此时,资源管理器可确定通过资源使用者的资源申请,也即申请成功。资源使用者在确定申请成功后,可按照申请资源数量对各项第一匹配资源的可使用资源数量进行锁定。具体地,锁定的方式可以是将第一匹配资源的可使用资源数量减去申请资源数量以及将锁定资源数量加上申请资源数量,以表示该部分资源被锁定,其他资源使用者不能够再申请。资源使用者在被告知申请通过后,即可对所请求的资源进行实际使用。

进一步地,在一实施方式中,若资源管理器检测到各项第一匹配资源的可使用资源数量并不是都不小于申请资源数量,也即有部分第一匹配资源的可使用资源数量是小于申请资源数量的,则说明该部分第一匹配资源不可以分配给资源使用者使用,此时,资源管理器可以确定不通过资源使用者的资源申请。或者,在其他实施方式中,若一部分第一匹配资源的可使用资源数量小于申请资源数量,而另一部分第一匹配资源的可使用资源数量不小于申请资源数量,则资源管理器可以先判断可使用资源数量不小于申请资源数量的该部分第一匹配资源是否可以单独被申请;若是,则资源管理器可以确定通过申请,并将该部分第一匹配资源关联的标签信息反馈给发起资源申请请求的资源使用者,以供资源使用者对该标签信息关联的资源进行实际使用;资源管理器也可以仅按照申请资源数量将该部分第一匹配资源的可使用资源数量进行锁定。需要说明的是,在资源管理器中可以预先设置各项资源是否可以单独被申请。

相比于现有的资源管理方法只能提前将管控的粒度定死,不能支持按照实际需求动态调整插入其他粒度,本实施例中,通过将各项资源与标签信息进行关联,并通过资源使用者在申请资源时在资源申请请求中携带包括一个或多个标签信息的标签组,资源管理器将标签组中的标签信息与各项资源关联的标签信息进行匹配,得到与标签组匹配的匹配资源,在匹配资源的可使用资源数量都不小于资源申请请求中的申请资源数量时通过资源使用者的资源申请,并按照申请资源数量对匹配资源的可使用资源进行锁定,实现了通过标签信息来标识和划分资源,通过标签信息的灵活设置能够从不同的粒度去划分资源,并且,在资源申请过程中通过标签匹配方式来分配资源,使得资源管理者可以随时通过更改资源关联的标签信息来对资源进行重新划分或归总,提高了资源分配的灵活度。

并且,由于集所针对的场景不同,资源分配策略往往有很大区别,资源使用者和提供者对资源属性的定义不统一,不在同一个维度上(比如Yarn资源提供者站在队列的维度管控资源,使用者则仅关注单个节点单进程的CPU和内存信息,并且需要对驱动器和执行器的资源进行区分,其中驱动器的资源还不在Yarn的队列中进行管理,非常复杂),因此现有的资源管理方法一次只能管理一个集的资源,每个集都要部署一个自己的资源管理器,使得运营成本上升,且资源调配的效率下降。而本实施例中,通过对资源打标签的方式划分资源,并在通过标签匹配的方式来分配资源,使得不同集的资源也可以通过标记标签的方式被资源管理器识别和分配,从而能够做到采用一个资源管理器对多个集进行资源管理,不需要部署多个资源管理器,降低了运营成本,同时提高了跨集资源分配的效率。

进一步地,基于上述第一实施例,提出本发明资源管理方法第二实施例,在本实施例中,所述步骤S10中将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息对应匹配成功的预设标签信息所关联的目标标签编号的步骤包括:

步骤S101,对于所述资源申请请求携带的第一标签组中的各条第一标签信息,分别提取各所述第一标签信息中的各标签值;

在一实施方式中,为提高标签匹配的效率,提高资源管理效率,可以采用一个快速查询表来备份各条标签信息。

具体地,可以采用一个标签表来存储各条预设标签信息,标签表中的一行记录包括一条预设标签信息与该预设标签信息关联的标签编号。在标签表中一般采用序列化的格式(例如json格式)来存储标签信息中的标签值,一个标签值包括一个名称和一个内容,序列化格式不便于检索。例如,一个引擎类型标签信息,包括“engineType”这一标签名和两个标签值,一个标签值的名称和内容分别为“engineType”和“io”,另一个标签值的名称和内容分别是“version”和“1”,两个标签值共同构成了引擎类型这一标签,采用json格式来表示两个标签值就是“{"engineType":"io","version":"1"}”。

为了便于检索和对比,采用一个快速查询表来存储标签表中标签信息的备份。快速查询表中一行记录包括一条预设标签信息中的一个标签值和该预设标签信息关联的标签编号,快速查询表中的标签编号与标签表中使用的标签编号是统一的。可以理解的是,当一个标签信息包括多个标签值时,其被拆分为快速查询表中的多行记录。例如,对于上述引擎类型标签信息中的两个标签值,假设该引擎类型标签信息的标签编号为1,那么该引擎类型标签信息的标签值在快速查询表中的记录为:

标签ID 值的名称 值的内容 1 engineType io 1 version 1

在一实施方式中,可以按照如图3的方式构建资源表、标签表、快速查询表和资源标签关联表。其中,标签表中一行记录还可包括一个值的个数字段,也即,表示该行记录的标签信息包括几个标签值,例如上述引擎类型标签信息的值的个数是2。

资源管理器在接收到资源申请请求后,对于所述资源申请请求携带的第一标签组中的各条第一标签信息,可以分别提取各第一标签信息中的各标签值。

步骤S102,在预设快速查询表中查各所述标签值,并获取查到的标签值在所述预设快速查询表中关联的标签编号;

资源管理器在提取到标签值后,在快速查询表中查各个标签值,也即,以标签值中的值的名称和值的内容作为条件去快速查询表中进行查,到与该值的名称和值的内容相同的一行或多行记录,获取查到的记录中的标签编号(以下为示区分称为候选编号)。

步骤S103,若在预设标签表中查到所述标签编号,则将所述标签编号作为目标标签编号,其中,所述预设标签表中的一行记录包括一条预设标签信息和所述预设标签信息关联的标签编号,所述预设快速查询表中的一行记录包括一条预设标签信息中的一个标签值和所述预设标签信息关联的标签编号。

在标签表中查候选编号,若查到存在该候选编号,则将该候选编号作为目标标签编号。若没有查到该候选编号,则说明该标签编号对应的标签信息已在标签表中进行删除,但在快速查询表中可能还没及时同步删除,此时,可以将该候选编号丢弃,视为没有匹配到目标标签编号。可以理解的是,一条标签信息中可能包括多个标签值,一个标签值在快速查询表中可能查到多个标签编号,因此最终查查到的目标标签编号可能有多个。

在本实施例中,通过采用标签表来关联存储标签编号和标签信息,并采用一个快速查询表来备份存储各标签信息中的标签值,通过快速查询表来查标签值,进而进行标签信息的匹配,提高了标签信息匹配的效率,提高了资源管理的效率。

进一步地,基于上述第一和/或第二实施例,提出本发明资源管理方法第三实施例,在本实施例中,所述步骤S40之后,还包括:

步骤S50,新增一项资源,并将所述申请资源数量作为新增资源的锁定资源数量;

步骤S60,将所述新增资源与所述第一标签组中的各所述第一标签信息分别进行关联。

在本实施例中,资源管理器在通过资源使用者的资源申请后,可以对资源使用者所申请的资源数量进行记录,以便于后续资源实际使用和资源回收时对资源数量进行管理。

具体地,资源使用者在资源申请请求中可以携带一条能够唯一标识该资源使用者的标签信息,也即,第一标签组中包括一条用于唯一标识该资源使用者的第一标签信息,一般采用每个资源使用者都不同的特征属性作为起唯一标识作用的标签信息,例如,资源使用者的引擎实例标签信息。

资源管理器在通过资源使用者的资源申请后,即可新增一项资源,并将资源申请请求中的申请资源数量作为新增资源的锁定资源数量,将该项新增资源与第一标签组中的各条第一标签信息分别进行关联。具体地,在一实施方式中,资源管理器可以在资源表中新增一行记录,自动按照当前的排序生成该记录的资源编号,将申请资源数量作为该记录中锁定资源数量这一字段的数据填入,其他字段则可置为空;在标签表或快速查询表中查到第一标签组中的各条第一标签信息关联的标签编号,若标签表中没有记录第一标签信息,则可以先在标签表和快速查询表中新增该第一标签信息的记录;在资源标签关联表中将各条第一标签信息的标签编号分别与该新增资源的资源编号关联存储,从而实现将新增资源与第一标签组中的各条第一标签信息分别进行关联。

也即,新增的该项资源并不是一项真实可用的资源,只是通过这种方式对资源使用者申请的资源数量进行记录,由于该项资源关联了用于唯一标识该资源使用者的标签信息,使得其他资源使用者在资源申请时不会匹配到该项资源,从而不会被错误的当成可用资源使用。

进一步地,基于上述第一、第二和/或第三实施例,提出本发明资源管理方法第四实施例,在本实施例中,所述步骤S40之后,还包括:

步骤S70,接收所述资源使用者的资源使用上报信息,将所述资源使用信息携带的第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第二标签组匹配成功的第二匹配资源,其中,所述第二标签组与所述第一标签组相同;

资源使用者在确定通过资源申请后,可以对按照资源申请请求中的标签信息和申请资源数量对资源进行实际的使用,资源使用者对资源进行实际使用后,可以向资源管理器发送资源使用上报信息。在资源使用上报信息中可以携带第二标签组,第二标签组中包括一条或多条第二标签信息,资源使用上报信息中还可以包括资源使用者实际使用的资源数量(以下称为实际使用资源数量)。在此需要说明的是,第二标签组与第一标签组相同,也即,资源使用者在上报实际使用的资源时,在资源使用上报信息中携带的标签信息与其在申请资源时在资源申请请求中携带的标签信息相同。

资源管理器在接收到资源使用上报信息后,可将第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与第二标签组匹配成功的第二匹配资源。其中,将第二标签信息与各项预设资源关联的标签信息进行匹配的过程与上述实施例中将第一标签信息与各项预设资源关联的标签信息进行匹配的过程类似,在此不做详细赘述。由于第二标签组与第一标签组相同,所以当在资源使用者提出资源申请请求和上报资源使用上报信息的中间没有新增资源项时,第二匹配资源与第一匹配资源是相同的。若资源使用者提出资源申请请求后新增了用于记录资源使用者申请资源数量的资源项,则由于该资源项与第一标签组中的各条第一标签信息进行了关联,所以通过对第二标签组中的各条第二标签信息进行匹配,除了能够匹配得到与第一匹配资源相同的资源项外,还能够匹配得到该用于记录资源使用者申请资源数量的资源项。

步骤S80,检测各项所述第二匹配资源的锁定资源数量是否都不小于所述资源使用上报信息中的实际使用资源数量;

资源管理器在匹配得到各项第二匹配资源后,可以检测各项第二匹配资源的锁定资源数量是否都不小于该资源使用上报信息中的实际使用资源数量。可以理解的是,资源使用者在通过资源申请后,是按照资源申请请求中的申请资源数量对资源进行实际使用的,也即实际使用的资源不超过申请资源数量,而资源管理器是按照申请资源数量对第一匹配资源的可使用资源进行锁定的,所以正常情况下,各个第二匹配资源中的锁定资源数量都是不小于实际使用资源数量的,而若有一个第二匹配资源的锁定资源数量小于实际使用资源数量,则说明资源使用者上报的实际使用资源数量有误。

步骤S90,若是,则按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量。

若资源管理器确定各项第二匹配资源的锁定资源数量都不小于资源使用上报信息中的实际使用资源数量,则说明资源使用者上报的实际使用资源数量正确,此时,资源管理器可以按照实际使用资源数量将各项第二匹配资源中的锁定资源数量转换为已使用资源数量。具体地,资源管理器可以将锁定资源数量减去实际使用资源数量,将已使用资源数量加上实际使用资源数量,以完成转换。

可以理解的是,当第二匹配资源包括用于记录资源使用者申请资源数量的资源项时,通过将该资源项的锁定资源数量转换为已使用资源数量,使得该资源使用者实际使用的资源数量被记录下来。在一实施方式中,资源使用者可以分多次向资源管理器上报实际使用的资源数量,每次携带的标签信息都相同,从而使得资源管理器每次都能够到相同的资源项,进而对资源项中的资源数量信息进行更新,以准确记录各项资源的使用情况,便于对资源进行准确管理。

若各项第二匹配资源的锁定资源数量并不是都不小于实际使用资源数量,也即有部分第二匹配资源的锁定资源数量是小于实际使用资源数量的,则说明资源使用者在资源使用上报信息中携带的实际使用资源数量有误,此时,资源管理器可以反馈错误告警给资源使用者,并对资源使用上报信息不做处理。

进一步地,所述步骤S90之后,还包括:

步骤A10,接收所述资源使用者的资源回收请求,将所述资源回收请求携带的第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第三标签组匹配成功的第三匹配资源,其中,所述第三标签组与所述第一标签信息组;

资源使用者对资源使用完毕后,可以向资源管理器发送资源回收请求,资源回收请求中可以携带第三标签组,第三标签组中包括一条或多条第三标签信息,资源回收请求中还可以包括资源使用者请求回收的资源数量(以下称为回收资源数量)。在此需要说明的是,第三标签组与第二标签组相同,也即,资源使用者在请求回收资源时,在资源回收请求中携带的标签信息与其在申请资源时在资源申请请求中携带的标签信息相同。

资源管理器在接收到资源回收请求后,可将第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与第三标签组匹配成功的第三匹配资源。其中,第三标签信息与各项预设资源关联的标签信息进行匹配的过程与上述实施例中将第一标签信息与各项预设资源关联的标签信息进行匹配的过程类似,在此不做详细赘述。同样地,由于第三标签组与第一标签组相同,所以当在资源使用者提出资源申请请求和资源回收请求的中间没有新增资源项时,第三匹配资源与第一匹配资源是相同的。若资源使用者提出资源申请请求后新增了用于记录资源使用者申请资源数量的资源项,则由于该资源项与第一标签组中的各条第一标签信息进行了关联,所以通过对第三标签组中的各条第三标签信息进行匹配,除了能够匹配得到与第一匹配资源相同的资源项外,还能够匹配得到该用于记录资源使用者申请资源数量的资源项。

步骤A20,检测各项所述第三匹配资源的已使用资源数量是否都不小于所述资源使回收请求中的回收资源数量;

资源管理器在匹配得到各项第三匹配资源后,可以检测各项第三匹配资源的已使用资源数量是否都不小于该资源回收请求中的回收资源数量。可以理解的是,资源使用者在通过资源申请后,是按照资源申请请求中的申请资源数量对资源进行实际使用的,也即实际使用的资源不超过申请资源数量,而资源管理器是按照实际使用的资源数量将第二匹配资源的锁定资源数量转换为已使用资源数量,所以正常情况下,各个第三匹配资源中的已使用资源数量都是不小于回收资源数量的,而若有一个第三匹配资源的已使用资源数量小于回收资源数量,则说明资源使用者上报的回收资源数量有误。

步骤A30,若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收。

若资源管理器确定各项第三匹配资源的已使用资源数量都不小于资源回收请求中的回收资源数量,则说明资源使用者上报的回收资源数量正确,此时,资源管理器可以按照回收资源数量将各项第三匹配资源中的已使用资源数量进行回收。具体地,资源管理器可以将已使用资源数量减去回收资源数量,并将可使用资源数量加上回收资源数量,以完成资源回收,便于该资源使用者或其他资源使用者进行下一次的资源申请。

可以理解的是,当第三匹配资源包括用于记录资源使用者申请资源数量的资源项时,通过将该资源项的已使用资源数量进行回收,使得该资源使用者回收的资源数量被记录下来。在一实施方式中,资源使用者可以分多次向资源管理器发送资源回收请求,每次携带的标签信息都相同,从而使得资源管理器每次都能够到相同的资源项,进而对资源项中的资源数量信息进行更新,以准确记录各项资源的使用情况,便于对资源进行准确管理。

若各项第三匹配资源的已使用资源数量并不是都不小于回收资源数量,也即有部分第三匹配资源的已使用资源数量是小于回收资源数量的,则说明资源使用者在资源回收请求中携带的回收资源数量有误,此时,资源管理器可以反馈错误告警给资源使用者,并对资源回收请求不做处理。

进一步地,在一实施方式中,所述步骤A30之后,还包括:

步骤A40,检测所述第三匹配资源中与所述使用者标签信息存在关联关系的目标资源的已使用资源数量是否为零;

步骤A50,若是,则删除所述目标资源。

当资源管理器在提出资源申请请求后新增了用于记录资源使用者申请资源数量的资源项时,在资源管理器根据资源回收请求中的第三标签组进行匹配时,匹配得到的第三匹配资源中会包括该资源项,该资源项是与第三匹配资源中唯一一项与使用者标签信息关联的资源。资源管理器可以在接收到资源回收请求,并根据回收资源数量对第三匹配资源中的已使用资源进行回收后,可以从第三匹配资源中到与使用者标签信息存在关联关系的资源,该资源项即用于记录资源使用者申请资源数量的资源项,将该项资源称为目标资源以示区分;资源管理器检测目标资源的已使用资源数量是否为零;若是,则说明该资源使用者已将使用的资源全部回收,此时,资源管理器可以将该目标资源进行删除,例如,从资源表中删除,并可删除该目标资源与标签信息之间的关联关系。

在本实施例中,通过资源使用者在资源申请请求、资源使用上报信息以及资源回收请求中都携带相同的标签信息,资源管理器通过标签匹配的方式查对应的资源项,并资源项的资源数量信息进行相应地更新,使得资源管理器在资源申请、资源使用上报以及资源回收的整个资源管理流程中,都能够通过标签信息来对资源进行管理,从而使得通过标签信息对资源进行灵活划分的作用能够贯穿整个资源管理流程,进一步提高了资源管理的灵活度。

进一步地,基于上述第一、第二、第三和/或第四实施例,提出本发明资源管理方法第五实施例,在本实施例中,所述方法还包括:

步骤A60,根据资源注册请求携带的资源数量信息新增一项资源,并将所述资源注册请求携带的各条第四标签信息分别与新增资源进行关联,其中,所述资源注册请求由资源提供者发起或者根据针对资源使用者设置的资源使用限制信息生成,当根据所述资源使用限制信息生成时,根据所述资源使用限制信息中的限制条件生成各条所述第四标签信息以及根据所述资源使用限制信息中的限制资源数量生成所述资源数量信息。

在本实施例中,资源提供者可以向资源管理器发送资源注册请求,或者,管理人员对资源使用者设置资源使用限制信息的操作可以在资源管理器中触发资源注册请求。资源注册请求中携带一条资源数量信息,以及一条或多条标签信息(称为第四标签信息以示区分),该资源数量信息表示需要注册的资源的资源数量,标签信息是用于对该项资源进行标记的标签信息。资源管理器在接收到资源注册请求后,根据请求中携带的资源数量信息新增一项资源,也即,将该资源数量信息作为新增资源的资源数量信息,并将各条第四标签信息分别与该项新增资源进行关联。

具体地,在一实施方式中,资源管理器可以在资源表中新增一行记录,自动按照当前的排序生成该记录的资源编号,将资源注册请求中的资源数量信息对应地填入该记录的各个字段中;资源管理器可以在标签表或快速查询表中查是否已存在与第四标签信息相同的标签信息,若没有查到,则在标签表和快速查询表中新增该第四标签信息的记录;在资源标签管理表中将各条第四标签信息的标签编号分别与该新增资源的资源编号关联存储,从而完成对资源注册请求中资源的注册。

当资源注册请求是由资源提供者发起时,根据该资源注册请求增加的资源项是实际可用的资源,这种情况下,资源注册请求中携带的资源数量信息一般包括资源类型、最大资源数量、最小资源数量、已使用资源数量、剩余资源数量(或称为可使用资源数量)和锁定资源数量这些字段的信息。

当资源注册请求是根据针对资源使用者设置的资源使用限制信息生成时,根据该资源注册请求增加的资源项并不是实际可用的资源,而是在标签信息匹配的过程中用于符合该资源项的标签信息的资源使用者进行限制。或者可以说,本实施例中,是将对资源使用者的限制信息以虚拟资源的方式体现,使得在资源申请、资源使用信息上报、资源回收的过程中资源管理器只需要执行标签信息匹配的逻辑即可,而无需专门执行资源使用者申请的资源是否受限制的判断逻辑,简化了资源管理者的管理流程,提高了资源管理效率。在这种情况下,可以根据资源使用限制信息中的限制条件生成资源注册请求中的各条第四标签信息,以及根据资源使用限制信息中的限制资源数量生成资源注册请求中的资源数量信息。一般地,限制条件包括多个均满足的条件时,可以先将根据每个条件分别生成一条标签信息,再将各条标签信息组合成一条标签信息,也即,将多个标签名采用字符串拼接的方式合成一个标签名,将多个标签值串联作为一条标签信息的标签值。限制资源数量所针对的资源类型作为资源注册请求中的资源类型,限制资源数量则作为资源注册请求中资源的可使用资源数量,其他字段则可以置位空。

进一步地,在一实施方式中,所述方法还包括:

步骤A70,接收资源下线请求,并将所述资源下线请求携带的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以在各所述预设资源中查待下线资源,其中,所述待下线资源为关联有与各所述第五标签信息对应相同的标签信息的资源;

步骤A80,若查到所述待下线资源,则将所述待下线资源的资源数量信息以及所述待下线资源与标签信息之间的关联信息进行删除,以对所述待下线资源进行下线。

资源提供者可以向资源管理器发送资源下线请求。资源管理器接收到资源下线请求后,可以根据资源下线请求对资源进行下线。具体地,资源下线请求中携带一个一条或多条标签信息,以下称为第五标签信息以示区别。资源管理器将资源下线请求中的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以查是否有待下线资源。具体地,当一项资源关联的标签信息与资源下线请求中的标签信息完全对应相同时,该项资源即为待下线资源;若查到待下线资源,则资源管理器可以将该待下线资源的资源数量信息删除,并将该待下线资源与标签信息之间的关联关系也删除,从而完成对该项资源的下线。若未查到待下线资源,也即没有一条预先资源关联有全部的第五标签信息,则资源管理器可以向资源下线请求的发送方反馈错误告警,或者对该资源下线请求不做处理。

在一实施方式中,举例说明资源注册、资源申请和资源回收的流程。

1、假设当前存在一个DEV集,其中有一台机器名称叫provider01,它能够提供50个CPU和500G的内存,它通过8080端口的引擎管理器与资源管理器等计算存储相关的应用进行通信。那么它作为一个资源提供者,将自己的资源相关信息,提交给资源管理器进行存储。该机器向资源管理器发送一个RPC消息,以Json格式的数据标明操作类型、标签信息和资源数量信息,具体格式为:

{"RegisterResource":{"labels":[{"key":"cluster","value":"{"clusterName":"DEV"}"},{"key":"emInstance","value":"{"instance":"provider01:8080","serviceNa me":"engineConnManager"}"}],"resources":{…}}}。

A、资源管理器收到消息后,以“RegisterResource”为依据,识别为资源注册请求,然后读取labels栏位,获得json格式的标签,通过解析该json格式中的key和value后,获得为该提供者打上的标签信息:

这些标签信息分别在标签表中按照前面描述的方式进行存储,假设它们的行ID分别为001和002。其中,标签描述是为便于理解所加的一个字段,在标签表实际并不存储该字段。

B、将该提供者的资源数量信息,在资源表中存储为一行,假设行ID为001。(资源本身的存储格式本实施例并不做限制,再次不做赘述)。

C、标签信息与资源的关联表中,将会有以下记录:

标签ID 资源ID 001 001 002 001

2、假设在DEV集中,还存在一个名为IDE的yarn队列,它能提供20个CPU和100G的队列内存。Yarn资源提供者向资源管理器发送一个RPC消息,以Json格式的数据标明该yarn队列的操作类型、标签信息和资源数量信息,具体格式为:

{"RegisterResource":{"labels":[{"key":"cluster","value":"{"clusterName":"DEV"}"},{"key":"yarn","value":"{"url":"0.0.0.0:8899","queueName":"IDE"}"}],"re sources":{…}}}。

与第1步中的资源提供者相比,这个yarn队列也是在Dev集上,所以它们的cluster集标签是一样的,不同点是,第1步中的是一个引擎管理器,代表的是一个机器的本地资源,所以它带着emInstance标签,指明它的机器名和端口;第二步中的是一个yarn队列,所以它带着yarn标签,指明这个yarn的服务接口地址和队列名称。

A、用和第1步中描述的同样的步骤解析json,为该提供者打上的标签信息有:

其中集标签,复用的是ID为001的那个记录,另一个标签的记录假设为003。

B、该提供者的资源数量信息,在资源表中存储为一行,假设行ID为002。

C、标签信息与资源的关联表中,将会有以下记录:

标签ID 资源ID 001 002 003 002

3、假设设置了用户hduser001,它通过BI的名义启动spark引擎时,最多只能使用5个CPU和5G内存。(资源使用量的限制,事实上也类似于一个提供者,只是不是真实的提供者,但在处理资源申请的逻辑时,两者不必做区分)。

A、根据这个设置生成的标签信息有:

由于它是一个标签的组合,无法单独拆开与资源进行结合,那么它生成了一个如下的组合标签:

B、根据这个设置在资源表中新增一项资源,假设行ID为003。

C、标签信息与资源的关联表中,将会有以下记录:

标签ID 资源ID 004 003

4、这时,一个资源使用者开始向资源管理器申请资源。假设它是一个叫hduser001的用户,准备在机器consumer01的10001端口上,以BI的名义启动一个spark引擎,准备申请的是DEV或SIT环境的资源,数量为10个CPU、10G内存,以及IDE队列的2个CPU、2G内存。

该资源使用者发送RPC消息给资源管理器,具体格式为:

{"RequestResource":{"labels":[{"Key":"user","value":"{"userName":"hduser001"}"},{"Key":"engineInstance","value":"{"instance":"consumer01:10001","serv iceName":"engineConn"}"},{"Key":"creator","value":"{"creator":"BI"}"},{"Key":"engineType","value":"{"engineType":"spark","version":"*"}"},{"Key":"Yarn","value":"{"url":"*","queueName":"IDE"}"},{"Key":"cluster","value":"{"clusterName":"DEV"}"},{"Key":"cluster","value":"{"clusterName":"SIT"}"}],"resources":{…}}}

该格式与前面描述的资源注册的格式类似,只是以"RequestResource"开头,以标识是资源申请的消息,labels是该申请所携带的标签,resources是该使用者准备申请的资源。

A、这个资源申请会携带的标签信息如下:

由于可以申请两个集的资源,所以带了两个集标签。

B、资源管理器接收到上述资源申请RPC消息后,会根据标签信息,筛选出符合条件的资源,具体地,遍历每个标签的每个值名称和值内容,去寻对应的标签和资源,到一个大的候选资源池,比如:

①以user标签为例子,资源申请中,带了一个{"userName":"hduser001"}的标签。

a、那么首先,以[值的名称为"userName",并且值的内容为"hduser001"]为条件,从快速查询表中到一条记录(根据第3步的假设,这个ID是004);

b、然后根据这条记录的标签ID,从标签表里,到与这个ID存在外键关联的标签,即第3步中的那个组合标签;

c、最后,确认这个被查询出来的标签真实存在后,通过资源标签关联表,到对应的资源ID(根据第3步的假设,这个ID是003),再从资源表中到与这个ID存在外键关联的资源,即匹配到了这个user标签对应的资源。

②以此类推,在上述资源申请中,通过user、creator或engineType的标签,都可以匹配到第3步中的设置的资源。通过cluster标签,可以匹配到第1、2步中的资源提供者的资源。通过yarn标签,也可以匹配到第2步中的资源。在此不一一列举可能性。

C、在候选资源中,再去匹配每个资源所关联的标签,是否都能在资源申请的标签中到匹配项。

①比如上一步中通过user标签匹配到的资源,它带有user、creator和engineType标签,这些标签和值必须在资源申请携带的标签中同时存在,才能被认为是被匹配成功的资源。在上述例子中,可以看到该资源是能够被匹配成功的。

②也存在无法被匹配成功的情况:假设第3步提供的资源,在上报的时候多加了一个engineType=hive的标签,然而这个标签并没有被这次的资源申请所携带,那么就无法被此次的申请匹配到了。想要让第3步提供的资源被engineType=hive的标签匹配到,可以通过先下线该资源,再次重新注册的时候,在注册RPC消息中加上engineType=hive标签的方式,来调整资源的分配策略。

D、资源的标签,在上报阶段,可以选择不参与这一步的对比,比如emInstance的标签,大多情况下是指明该资源提供者所在的机器和端口,无需每次申请都指定机器和端口的范围。但如果资源申请主动带上了一个emInstance标签,那么依然可以通过这个标签在上一步把对应的资源加入候选资源池。

E、到匹配项后,进行申请资源和可用资源的数量对比(如CPU个数、内存数量的对比)。如果所有匹配资源的可用资源都不小于申请资源数量,那么申请获得通过,资源管理器根据标签锁定资源等待实际使用:

①根据申请的资源数量,在资源表中新增一条记录,得到这条记录的ID。

②将资源记录ID与资源申请所携带的所有标签ID在关联表中记录关联。(由于engineInstance这个标签是每个引擎唯一的,所以这里记录的资源,是不会被错误的当成可用资源进行使用的)

F、资源使用完毕后,资源管理器对资源进行回收。

①资源使用者(往往是一个进程)在关闭前,会通过RPC消息通知资源管理器进行资源的回收,格式为:

{"ReleaseResource":{"labels":[…(标签内容与申请资源时所传的一致)],"resources":{…}}}

②资源管理器接收到资源回收申请后,根据每个标签的key和value,到标签ID,再到其关联的资源记录,从资源已使用数量中减去RPC消息中携带的资源数量后,更新资源记录。

③针对engineInstance标签对应的资源记录,回收时做删除处理。

此外,此外本发明实施例还提出一种资源管理装置,参照图4,所述装置包括:

接收模块10,用于接收资源使用者的资源申请请求,将所述资源申请请求携带的第一标签组中的各条第一标签信息分别与各条预设标签信息进行匹配,得到与所述第一标签信息匹配成功的预设标签信息所关联的目标标签编号;

第一检测模块20,用于将各项预设资源中与所述目标标签编号关联的资源作为候选资源,并检测与所述候选资源关联的各条可匹配的预设标签信息是否都在所述第一标签组中存在匹配成功的标签信息;

第二检测模块30,用于若都存在,则将所述候选资源作为与所述第一标签组匹配成功的第一匹配资源,并检测各项所述第一匹配资源的可使用资源数量是否都不小于所述资源申请请求中的申请资源数量;

确定模块40,用于若是,则确定通过所述资源使用者的资源申请,并按照所述申请资源数量对各项所述第一匹配资源的可使用资源数量进行锁定。

进一步地,所述接收模块10包括:

提取单元,用于对于所述资源申请请求携带的第一标签组中的各条第一标签信息,分别提取各所述第一标签信息中的各标签值;

查单元,用于在预设快速查询表中查各所述标签值,并获取查到的标签值在所述预设快速查询表中关联的标签编号;

确定单元,用于若在预设标签表中查到所述标签编号,则将所述标签编号作为目标标签编号,其中,所述预设标签表中的一行记录包括一条预设标签信息和所述预设标签信息关联的标签编号,所述预设快速查询表中的一行记录包括一条预设标签信息中的一个标签值和所述预设标签信息关联的标签编号。

进一步地,所述第一标签组中包括一条用于唯一标识所述资源使用者的使用者标签信息,所述装置还包括:

第一增加模块,用于新增一项资源,并将所述申请资源数量作为新增资源的锁定资源数量;

关联模块,用于将所述新增资源与所述第一标签组中的各所述第一标签信息分别进行关联。

进一步地,所述接收模块10还用于:接收所述资源使用者的资源使用上报信息,将所述资源使用信息携带的第二标签组中的各条第二标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第二标签组匹配成功的第二匹配资源,其中,所述第二标签组与所述第一标签组相同;

所述第二检测模块30还用于:检测各项所述第二匹配资源的锁定资源数量是否都不小于所述资源使用上报信息中的实际使用资源数量;

所述装置还包括:

转换模块,用于若是,则按照所述实际使用资源数量将各项所述第二匹配资源中的锁定资源数量转换为已使用资源数量。

进一步地,所述接收模块10还用于:接收所述资源使用者的资源回收请求,将所述资源回收请求携带的第三标签组中的各条第三标签信息与各项预设资源关联的标签信息进行匹配,得到与所述第三标签组匹配成功的第三匹配资源,其中,所述第三标签组与所述第一标签信息组;

所述第二检测模块30还用于:检测各项所述第三匹配资源的已使用资源数量是否都不小于所述资源使回收请求中的回收资源数量;

所述装置还包括:

回收模块,用于若是,则按照所述回收资源数量将各项所述第三匹配资源中的已使用资源数量进行回收。

进一步地,所述检测模块30还用于:检测所述第三匹配资源中与所述使用者标签信息存在关联关系的目标资源的已使用资源数量是否为零;

所述装置还包括:

删除模块,用于若是,则删除所述目标资源。

进一步地,所述装置还包括:

第二增加模块,用于根据资源注册请求携带的资源数量信息新增一项资源,并将所述资源注册请求携带的各条第四标签信息分别与新增资源进行关联,其中,所述资源注册请求由资源提供者发起或者根据针对资源使用者设置的资源使用限制信息生成,当根据所述资源使用限制信息生成时,根据所述资源使用限制信息中的限制条件生成各条所述第四标签信息以及根据所述资源使用限制信息中的限制资源数量生成所述资源数量信息。

进一步地,所述接收模块10还用于:接收资源下线请求,并将所述资源下线请求携带的各条第五标签信息与各项预设资源关联的标签信息进行匹配,以在各所述预设资源中查待下线资源,其中,所述待下线资源为关联有与各所述第五标签信息对应相同的标签信息的资源;

所述装置还包括:

下线模块,用于若查到所述待下线资源,则将所述待下线资源的资源数量信息以及所述待下线资源与标签信息之间的关联信息进行删除,以对所述待下线资源进行下线。

本发明资源管理装置的具体实施方式的拓展内容与上述资源管理方法各实施例基本相同,在此不做赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有资源管理程序,所述资源管理程序被处理器执行时实现如下所述的资源管理方法的步骤。

本发明资源管理设备和计算机可读存储介质各实施例,均可参照本发明资源管理方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

本文发布于:2023-04-13 11:28:10,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/85983.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图