基于云计算的集群扩缩容方法、装置、设备及介质与流程

未命名 07-12 阅读:157 评论:0


1.本技术涉及人工智能技术领域,尤其涉及一种基于云计算的集群扩缩容方法、装置、电子设备及存储介质。


背景技术:

2.云计算是一种能够让用户按需使用计算、网络、存储等硬件资源的信息技术服务模式。公有云是由第三方企业运维管理来为个人和企业用户提供服务的云端基础设施,公有云运营商提供可编程的应用程序接口api,使消费者可以更有效地使用公有云资源。
3.yarn是一个管理大型计算机集群系统的软件,通常使用在大规模数据中心中,用来管理计算机集群,并可以为各类计算框架提供资源的管理和调度。yarn主要由资源管理器(rm)和节点管理器(nm)组成。rm负责集群中所有资源的统一管理和分配,它接收来自各个nm的资源汇报信息,nm用于管理集群中的单个计算节点。
4.随着云计算的发展,越来越多的企业选择使用公有云的服务,将数据中心部署在公有云之上,但yarn集群中运行的任务数量通常都会有较大的波动,而固定的资源分配方式不能充分发挥云计算弹性灵活的特点,导致集群的计算资源不能被充分利用,降低了计算资源的利用效率。


技术实现要素:

5.鉴于以上内容,有必要提出一种基于云计算的集群扩缩容方法、装置、电子设备及存储介质,以解决如何提高云计算集群中计算资源的利用效率这一技术问题。
6.本技术提供一种基于云计算的集群扩缩容方法,所述方法包括:
7.依据资源管理器获取预设时间段内的可用计算资源;
8.对接收到的任务请求分配所述可用计算资源;
9.对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;
10.基于所述扩缩容操作结果计算集群的扩缩容优化资源量;
11.基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。
12.在一些实施例中,所述依据资源管理器获取预设时间段内的可用计算资源包括:
13.依据资源管理框架对资源管理器进行优化获得资源优化管理器;
14.基于所述资源优化管理器统计预设时间段内的可用计算资源。
15.在一些实施例中,所述对接收到的任务请求分配所述可用计算资源包括:
16.基于所述资源管理器对接收到的任务请求创建分配管理器,所述分配管理器用于管理所述任务请求;
17.基于所述分配管理器执行调度算法以对所述任务请求进行调度;
18.基于所述资源优化管理器对被调度的任务请求分配所述可用计算资源。
19.在一些实施例中,所述对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果包括:
20.统计第一可用时间段内已分配的可用计算资源的平均值获得当前平均计算资源;
21.统计第二可用时间段内已分配的可用计算资源的平均值获得历史平均计算资源;
22.选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量;
23.对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。
24.在一些实施例中,所述对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果包括:
25.若所述已分配计算资源总量大于扩容阈值,则扩缩容操作结果为对集群进行扩容操作;
26.若所述已分配计算资源总量小于缩容阈值,则扩缩容操作结果为对集群进行缩容操作;
27.若所述已分配计算资源总量不大于扩容阈值且不小于缩容阈值,则扩缩容操作结果为不对集群进行扩缩容操作。
28.在一些实施例中,所述基于所述扩缩容操作结果计算集群的扩缩容优化资源量包括:
29.若所述扩缩容操作结果为对集群进行扩容操作,则依据所述已分配计算资源总量与所述缩容阈值的比值计算集群的扩缩容优化资源量;
30.若所述扩缩容操作结果为对集群进行缩容操作,则依据所述已分配计算资源总量与所述扩容阈值的比值计算集群的扩缩容优化资源量。
31.在一些实施例中,所述基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整包括:
32.基于所述扩缩容优化资源量生成扩缩容脚本命令;
33.基于所述扩缩容脚本命令对集群中各节点的存储空间进行扩容和缩容调。
34.本技术实施例还提供一种基于云计算的集群扩缩容装置,所述装置包括:
35.获取单元,用于依据资源管理器获取预设时间段内的可用计算资源;
36.分配单元,用于对接收到的任务请求分配所述可用计算资源;
37.对比单元,用于对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;
38.计算单元,用于基于所述扩缩容操作结果计算集群的扩缩容优化资源量;
39.调整单元,用于基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。
40.本技术实施例还提供一种电子设备,所述电子设备包括:
41.存储器,存储至少一个指令;
42.处理器,执行所述存储器中存储的指令以实现所述的基于云计算的集群扩缩容方法。
43.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述的基于云计算的集群扩缩容方法。
44.本技术通过获取预设时间段内的可用计算资源来对接收到的任务请求分配可用计算资源,并根据可用计算资源的总量和预设的扩缩容阈值对集群中的各节点进行动态的扩容和缩容操作,从而提高了计算资源的利用效率。
附图说明
45.图1是本技术所涉及的基于云计算的集群扩缩容方法的较佳实施例的流程图。
46.图2是本技术所涉及的基于云计算的集群扩缩容装置的较佳实施例的功能模块图。
47.图3是本技术所涉及的基于云计算的集群扩缩容方法的较佳实施例的电子设备的结构示意图。
48.图4是本技术所涉及的计算机集群的系统架构示意图。
具体实施方式
49.为了能够更清楚地理解本技术的目的、特征和优点,下面结合附图和具体实施例对本技术进行详细描述。需要说明的是,在不冲突的情况下,本技术的实施例及实施例中的特征可以相互结合。在下面的描述中阐述了很多具体细节以便于充分理解本技术,所述描述的实施例仅是本技术一部分实施例,而不是全部的实施例。
50.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
51.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
52.本技术实施例提供一种基于云计算的集群扩缩容方法,可应用于一个或者多个电子设备中,电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
53.电子设备可以是任何一种可与客户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(personal digital assistant,pda)、游戏机、交互式网络电视(internet protocol television,iptv)、智能式穿戴式设备等。
54.电子设备还可以包括网络设备和/或客户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(cloud computing)的由大量主机或网络服务器构成的云。
55.电子设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(virtual private network,vpn)等。
56.如图1所示,是本技术基于云计算的集群扩缩容方法的较佳实施例的流程图。根据
不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
57.如图4所示,为计算机集群的系统架构示意图,用户可以使用物理机101、102、103通过网络104与服务器105交互,以接收或发送消息等。物理机101、102、103上可以安装有虚拟机,并接收服务器105的虚拟机调度指令。
58.物理机101、102、103可以是安装有虚拟机的平板电脑、膝上型便携计算机和台式计算机等等,服务器105可以是提供各种服务的服务器,例如对物理机101、102、103上运行的虚拟机提供管理功能的虚拟机管理服务器。虚拟机管理服务器可以包括资源管理器、应用管理器、节点管理器等功能模块,用于定时监控各个物理机和虚拟机的资源利用率,根据资源分布情况增加或减少虚拟机的数据,达到扩容或缩容的目的。
59.需要说明的是,本技术实施例所提供的用于集群扩缩容的方法一般由服务器105执行,相应地,用于集群扩缩容的装置一般设置于服务器105中。
60.s10,依据资源管理器获取预设时间段内的可用计算资源。
61.在一个可选的实施例中,所述依据资源管理器获取预设时间段内的可用计算资源包括:
62.依据资源管理框架对资源管理器进行优化获得资源优化管理器;
63.基于所述资源优化管理器统计预设时间段内的可用计算资源。
64.该可选的实施例中,可使用yarn对计算机集群进行管理,所述yarn是一个管理大型计算机集群系统的软件,主要由资源管理器(rm)和节点管理器(nm)组成。资源管理器作为每个节点的管理程序,可以用于周期性的监控集群的资源利用率,接收任务请求并进行资源调度,同时可以根据资源利用率对集群做出扩容和缩容的决策,并可以创建新的虚拟机作为弹性节点,或者释放集群中弹性节点所对应的虚拟机。
65.该可选的实施例中,可以通过将mesos与yarn相结合的方式对计算机集群中的计算资源进行管理。所述mesos是开源的分布式资源管理框架,可以用来管理集群中的所有资源以及yarn的资源请求,因此可通过资源管理框架mesos与yarn的资源管理器相结合的方式实现对资源管理器的优化,本方案中将经过与mesos相结合后的资源管理器作为资源优化管理器。
66.该可选的实施例中,所述资源优化管理器决定了哪些计算资源是可用的,所述资源优化管理器用于确保计算资源能够基于业务策略被公平地分发,因此在预设时间段内可通过所述资源优化管理器统计该时间段内的可用计算资源。其中,所述预设时间段可以是每天的上午八点到晚上十一点,每次统计的时间间隔可以为30分钟。
67.该可选实施例中,由于所述资源优化管理器由资源管理框架mesos与yarn的资源管理器组合而成,因此当一个任务请求到达yarn时,所述资源优化管理器可以通过mesos直接匹配任务请求所需要的计算资源,实现更加灵活准确的计算资源管理。
68.如此,可以在预设的时间段内快速准确的统计出可用计算资源,为后续对集群的扩缩容操作提供数据支撑。
69.s11,对接收到的任务请求分配所述可用计算资源。
70.在一个可选的实施例中,所述对接收到的任务请求分配所述可用计算资源包括:
71.基于所述资源管理器对接收到的任务请求创建分配管理器,所述分配管理器用于管理所述任务请求;
72.基于所述分配管理器执行调度算法以对所述任务请求进行调度;
73.基于所述资源优化管理器对被调度的任务请求分配所述可用计算资源。
74.该可选的实施例中,可通过资源管理器对接收到的任务请求创建分配管理器,所述分配管理器是集群中每个任务请求的管理程序,用于管理所述任务请求,每个任务请求提交到集群后都会由所述资源管理器创建对应的分配管理器来管理该任务请求。其中,每个任务请求由若干数量的子任务组成,这些任务通常以容器的形式在各个节点上执行,分配管理器对这些子任务进行管理和监控。
75.该可选的实施例中,所述资源管理器、分配管理器和资源优化管理器等均可通过远程调用协议(remote procedure call protocol,rpc)的方式进行通信。所述分配管理器通过执行调度算法对所述任务请求进行调度,并通过rpc心跳向资源优化管理器请求所述任务请求的计算资源,而所述资源优化管理器可通过rpc心跳返回值告知所述分配管理器分配的计算资源以及任务请求的运行状态。
76.该可选的实施例中,所述资源优化管理器中的mesos可以实现任何调度算法,每个算法都能根据自己的策略进行接收或是拒绝分配请求,并且可以容纳成千上万种调度程序以多租户的方式运行在同一个集群。同时,mesos的两级调度模型允许每个分配管理器自行决定使用那种调度算法来调度运行的任务,因此所述资源优化管理器可以直接对被调度的任务请求分配所述可用计算资源。
77.该可选的实施例中,当任务请求到达yarn资源管理器,yarn评估所有可用的计算资源后经分配管理器对任务请求进行调度,并通过mesos自动配置与所述任务请求相匹配的计算资源,因此在对yarn中的计算资源进行调整时无需人为重新配置yarn集群,从而使整个集群的库容和缩容变得更加容易。
78.如此,可以更加容易的对yarn集群进行扩缩容操作,对任务请求所需的计算资源进行快速配置,从而提高集群的扩缩容效率。
79.s12,对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果。
80.在一个可选的实施例中,所述对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果包括:
81.统计第一可用时间段内已分配的可用计算资源的平均值获得当前平均计算资源;
82.统计第二可用时间段内已分配的可用计算资源的平均值获得历史平均计算资源;
83.选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量;
84.对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。
85.该可选的实施例中,可将当前时间段作为第一可用时间段,并统计所述第一可用时间段内已分配的可用计算资源,从而计算得到所述第一可用时间段内可用计算资源的平均值作为当前平均计算资源,本方案中选取距离当前时间最近的三十分钟作为所述第一可用时间段。
86.该可选的实施例中,可将预设的固定周期的历史时间段作为第二可用时间段,并计算所述第二可用时间段内的可用计算资源的平均值作为历史平均计算资源,本方案中选取过去一周(七天)内与所述第一可用时间段在相同时间段内的所有时间段作为第二可用
时间段。
87.示例性的,如当前时间是晚上九点,可选取晚上八点半到晚上九点之间的三十分钟作为所述第一可用时间段,同时选取过去一周内每天晚上八点半到晚上九点之间的三十分钟作为所述第二可用时间段,即所述第二可用时间段包括七个与所述第一可用时间段相同的三十分钟。
88.该可选的实施例中,可选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量,并通过对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。
89.该可选的实施例中,若所述已分配计算资源总量大于扩容阈值,则扩缩容操作结果为对集群进行扩容操作;若所述已分配计算资源总量小于缩容阈值,则扩缩容操作结果为对集群进行缩容操作;若所述已分配计算资源总量不大于扩容阈值且不小于缩容阈值,则扩缩容操作结果为不对集群进行扩缩容操作。其中,所述扩容阈值可以为对应节点处预先配置的初始计算资源量的80%,所述缩容阈值可以为对应节点处预先配置的初始计算资源量的60%。
90.如此,通过对比已分配的可用计算资源与预设的扩缩容阈值即可确定对集群进行扩容操作还是缩容操作,从而实现对集群的弹性调整,提高计算资源的利用率。
91.s13,基于所述扩缩容操作结果计算集群的扩缩容优化资源量。
92.在一个可选的实施例中,所述基于所述扩缩容操作结果计算集群的扩缩容优化资源量包括:
93.若所述扩缩容操作结果为对集群进行扩容操作,则依据所述已分配计算资源总量与所述缩容阈值的比值计算集群的扩缩容优化资源量;
94.若所述扩缩容操作结果为对集群进行缩容操作,则依据所述已分配计算资源总量与所述扩容阈值的比值计算集群的扩缩容优化资源量。
95.该可选的实施例中,若所述扩缩容操作结果为对集群进行扩容操作,则计算所述已分配计算资源总量与所述缩容阈值的比值,并将比值结果作为对集群扩容后可分配的计算资源量,然后根据集群扩容后可分配的计算资源量获得扩缩容优化资源量。
96.示例性的,设集群对任务请求a配置的cpu计算资源总量为2核,任务a的已分配计算资源总量为1800毫核,由于扩容阈值为80%,即1600毫核,因此需要对集群进行扩容操作,即扩容后任务a可获取的计算资源总量为1800/0.6=3000毫核。
97.该可选的实施例中,若所述扩缩容操作结果为对集群进行缩容操作,则可计算所述已分配计算资源总量与所述扩容阈值的比值,并将比值结果作为对集群缩容后可分配的计算资源量,然后根据集群缩容后可分配的计算资源量获得扩缩容优化资源量。
98.示例性的,设集群对任务请求b配置的cpu计算资源总量为2核,任务b的已分配计算资源总量为1000毫核,由于缩容阈值为60%,即1200毫核,因此需要对集群进行缩容操作,即缩容后任务b可获取的计算资源总量为1000/0.8=1250毫核。
99.该可选的实施例中,由于各任务通常以容器(pod)的形式在各个节点上执行,因此对集群进行扩容和缩容,即是对集群中各节点上执行任务的容器数量进行增加和减少,而容器的容量为固定值,因此最终需要根据集群扩缩容后可分配的计算资源量计算需要调整的容器个数,从而获得所述扩缩容优化资源量。
100.示例性的,每个容器的容量为500毫核,因此任务a需要由原来的4个容器调整为3000/500=6个容器,即扩容后对应的扩缩容优化资源量为3000毫核,而任务b可获取的计算资源总量为1000/0.8=1250毫核,由于1250/500=2.5,因此需要向上取整,即任务b可获取的计算资源总量为3个容器共计1500毫核,因此缩容后对应的扩缩容优化资源量为1500毫核。
101.该可选的实施例中,通过计算所述已分配计算资源总量与所述缩容阈值的比值来作为扩容后的可分配的计算资源量,并通过计算所述已分配计算资源总量与所述扩容阈值的比值来计算缩容后的可分配的计算总量,可以使集群扩容后获得相对较多比例的可分配的计算总量,并使集群在缩容后获得相对较少比例的可分配的计算总量。
102.如此,可以对集群中各节点进行弹性扩容和缩容,并配置合理的计算资源总量来保证任务的正常运行,有效提高了计算资源的利用效率。
103.s14,基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。
104.在一个可选的实施例中,所述基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整包括:
105.基于所述扩缩容优化资源量生成扩缩容脚本命令;
106.基于所述扩缩容脚本命令对集群中各节点进行扩容或缩容调整。
107.该可选的实施例中,集群中的每一个节点都有一个对应的节点id,因此可以根据已知的扩缩容优化资源量以及需要进行扩缩容操作的节点的节点id生成扩缩容脚本命令,并根据所述扩缩容脚本命令对集群中的对应节点进行扩容和缩容调整。
108.示例性的,生成的扩缩容脚本命令可以为“yarn rmadmin-updatenoderesource[nodeid][vcores]”,其中[nodeid]和[vcores]分别表示对应节点的节点id和经过扩缩容操作后的扩缩容优化资源量。
[0109]
如此,通过生成扩缩容脚本命令可以实现对集群中各节点的自动化扩容缩容操作,提高集群扩缩容的效率。
[0110]
请参见图2,图2是本技术基于云计算的集群扩缩容装置的较佳实施例的功能模块图。基于云计算的集群扩缩容装置11包括获取单元110、分配单元111、对比单元112、计算单元113、调整单元114。本技术所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机可读指令段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
[0111]
在一个可选的实施例中,获取单元110用于依据资源管理器获取预设时间段内的可用计算资源。
[0112]
在一个可选的实施例中,所述依据资源管理器获取预设时间段内的可用计算资源包括:
[0113]
依据资源管理框架对资源管理器进行优化获得资源优化管理器;
[0114]
基于所述资源优化管理器统计预设时间段内的可用计算资源。
[0115]
在一个可选的实施例中,所述依据资源管理器获取预设时间段内的可用计算资源包括:
[0116]
依据资源管理框架对资源管理器进行优化获得资源优化管理器;
[0117]
基于所述资源优化管理器统计预设时间段内的可用计算资源。
[0118]
该可选的实施例中,可使用yarn对计算机集群进行管理,所述yarn是一个管理大型计算机集群系统的软件,主要由资源管理器(rm)和节点管理器(nm)组成。资源管理器作为每个节点的管理程序,可以用于周期性的监控集群的资源利用率,接收任务请求并进行资源调度,同时可以根据资源利用率对集群做出扩容和缩容的决策,并可以创建新的虚拟机作为弹性节点,或者释放集群中弹性节点所对应的虚拟机。
[0119]
该可选的实施例中,可以通过将mesos与yarn相结合的方式对计算机集群中的计算资源进行管理。所述mesos是开源的分布式资源管理框架,可以用来管理集群中的所有资源以及yarn的资源请求,因此可通过资源管理框架mesos与yarn的资源管理器相结合的方式实现对资源管理器的优化,本方案中将经过与mesos相结合后的资源管理器作为资源优化管理器。
[0120]
该可选的实施例中,所述资源优化管理器决定了哪些计算资源是可用的,所述资源优化管理器用于确保计算资源能够基于业务策略被公平地分发,因此在预设时间段内可通过所述资源优化管理器统计该时间段内的可用计算资源。其中,所述预设时间段可以是每天的上午八点到晚上十一点,每次统计的时间间隔可以为30分钟。
[0121]
该可选实施例中,由于所述资源优化管理器由资源管理框架mesos与yarn的资源管理器组合而成,因此当一个任务请求到达yarn时,所述资源优化管理器可以通过mesos直接匹配任务请求所需要的计算资源,实现更加灵活准确的计算资源管理。
[0122]
在一个可选的实施例中,分配单元111用于对接收到的任务请求分配所述可用计算资源。
[0123]
在一个可选的实施例中,所述对接收到的任务请求分配所述可用计算资源包括:
[0124]
基于所述资源管理器对接收到的任务请求创建分配管理器,所述分配管理器用于管理所述任务请求;
[0125]
基于所述分配管理器执行调度算法以对所述任务请求进行调度;
[0126]
基于所述资源优化管理器对被调度的任务请求分配所述可用计算资源。
[0127]
该可选的实施例中,可通过资源管理器对接收到的任务请求创建分配管理器,所述分配管理器是集群中每个任务请求的管理程序,用于管理所述任务请求,每个任务请求提交到集群后都会由所述资源管理器创建对应的分配管理器来管理该任务请求。其中,每个任务请求由若干数量的子任务组成,这些任务通常以容器的形式在各个节点上执行,分配管理器对这些子任务进行管理和监控。
[0128]
该可选的实施例中,所述资源管理器、分配管理器和资源优化管理器等均可通过远程调用协议(remote procedure call protocol,rpc)的方式进行通信。所述分配管理器通过执行调度算法对所述任务请求进行调度,并通过rpc心跳向资源优化管理器请求所述任务请求的计算资源,而所述资源优化管理器可通过rpc心跳返回值告知所述分配管理器分配的计算资源以及任务请求的运行状态。
[0129]
该可选的实施例中,所述资源优化管理器中的mesos可以实现任何调度算法,每个算法都能根据自己的策略进行接收或是拒绝分配请求,并且可以容纳成千上万种调度程序以多租户的方式运行在同一个集群。同时,mesos的两级调度模型允许每个分配管理器自行决定使用那种调度算法来调度运行的任务,因此所述资源优化管理器可以直接对被调度的任务请求分配所述可用计算资源。
[0130]
该可选的实施例中,当任务请求到达yarn资源管理器,yarn评估所有可用的计算资源后经分配管理器对任务请求进行调度,并通过mesos自动配置与所述任务请求相匹配的计算资源,因此在对yarn中的计算资源进行调整时无需人为重新配置yarn集群,从而使整个集群的库容和缩容变得更加容易。
[0131]
在一个可选的实施例中,对比单元112用于对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果。
[0132]
在一个可选的实施例中,所述对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果包括:
[0133]
统计第一可用时间段内已分配的可用计算资源的平均值获得当前平均计算资源;
[0134]
统计第二可用时间段内已分配的可用计算资源的平均值获得历史平均计算资源;
[0135]
选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量;
[0136]
对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。
[0137]
该可选的实施例中,可将当前时间段作为第一可用时间段,并统计所述第一可用时间段内已分配的可用计算资源,从而计算得到所述第一可用时间段内可用计算资源的平均值作为当前平均计算资源,本方案中选取距离当前时间最近的三十分钟作为所述第一可用时间段。
[0138]
该可选的实施例中,可将预设的固定周期的历史时间段作为第二可用时间段,并计算所述第二可用时间段内的可用计算资源的平均值作为历史平均计算资源,本方案中选取过去一周(七天)内与所述第一可用时间段在相同时间段内的所有时间段作为第二可用时间段。
[0139]
示例性的,如当前时间是晚上九点,可选取晚上八点半到晚上九点之间的三十分钟作为所述第一可用时间段,同时选取过去一周内每天晚上八点半到晚上九点之间的三十分钟作为所述第二可用时间段,即所述第二可用时间段包括七个与所述第一可用时间段相同的三十分钟。
[0140]
该可选的实施例中,可选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量,并通过对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。
[0141]
该可选的实施例中,若所述已分配计算资源总量大于扩容阈值,则扩缩容操作结果为对集群进行扩容操作;若所述已分配计算资源总量小于缩容阈值,则扩缩容操作结果为对集群进行缩容操作;若所述已分配计算资源总量不大于扩容阈值且不小于缩容阈值,则扩缩容操作结果为不对集群进行扩缩容操作。其中,所述扩容阈值可以为对应节点处预先配置的初始计算资源量的80%,所述缩容阈值可以为对应节点处预先配置的初始计算资源量的60%。
[0142]
在一个可选的实施例中,计算单元113用于基于所述扩缩容操作结果计算集群的扩缩容优化资源量。
[0143]
在一个可选的实施例中,所述基于所述扩缩容操作结果计算集群的扩缩容优化资源量包括:
[0144]
若所述扩缩容操作结果为对集群进行扩容操作,则依据所述已分配计算资源总量与所述缩容阈值的比值计算集群的扩缩容优化资源量;
[0145]
若所述扩缩容操作结果为对集群进行缩容操作,则依据所述已分配计算资源总量与所述扩容阈值的比值计算集群的扩缩容优化资源量。
[0146]
该可选的实施例中,若所述扩缩容操作结果为对集群进行扩容操作,则计算所述已分配计算资源总量与所述缩容阈值的比值,并将比值结果作为对集群扩容后可分配的计算资源量,然后根据集群扩容后可分配的计算资源量获得扩缩容优化资源量。
[0147]
示例性的,设集群对任务请求a配置的cpu计算资源总量为2核,任务a的已分配计算资源总量为1800毫核,由于扩容阈值为80%,即1600毫核,因此需要对集群进行扩容操作,即扩容后任务a可获取的计算资源总量为1800/0.6=3000毫核。
[0148]
该可选的实施例中,若所述扩缩容操作结果为对集群进行缩容操作,则可计算所述已分配计算资源总量与所述扩容阈值的比值,并将比值结果作为对集群缩容后可分配的计算资源量,然后根据集群缩容后可分配的计算资源量获得扩缩容优化资源量。
[0149]
示例性的,设集群对任务请求b配置的cpu计算资源总量为2核,任务b的已分配计算资源总量为1000毫核,由于缩容阈值为60%,即1200毫核,因此需要对集群进行缩容操作,即缩容后任务b可获取的计算资源总量为1000/0.8=1250毫核。
[0150]
该可选的实施例中,由于各任务通常以容器(pod)的形式在各个节点上执行,因此对集群进行扩容和缩容,即是对集群中各节点上执行任务的容器数量进行增加和减少,而容器的容量为固定值,因此最终需要根据集群扩缩容后可分配的计算资源量计算需要调整的容器个数,从而获得所述扩缩容优化资源量。
[0151]
示例性的,每个容器的容量为500毫核,因此任务a需要由原来的4个容器调整为3000/500=6个容器,即扩容后对应的扩缩容优化资源量为3000毫核,而任务b可获取的计算资源总量为1000/0.8=1250毫核,由于1250/500=2.5,因此需要向上取整,即任务b可获取的计算资源总量为3个容器共计1500毫核,因此缩容后对应的扩缩容优化资源量为1500毫核。
[0152]
该可选的实施例中,通过计算所述已分配计算资源总量与所述缩容阈值的比值来作为扩容后的可分配的计算资源量,并通过计算所述已分配计算资源总量与所述扩容阈值的比值来计算缩容后的可分配的计算总量,可以使集群扩容后获得相对较多比例的可分配的计算总量,并使集群在缩容后获得相对较少比例的可分配的计算总量。
[0153]
在一个可选的实施例中,调整单元114用于基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。
[0154]
在一个可选的实施例中,所述基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整包括:
[0155]
基于所述扩缩容优化资源量生成扩缩容脚本命令;
[0156]
基于所述扩缩容脚本命令对集群中各节点进行扩容或缩容调整。
[0157]
该可选的实施例中,集群中的每一个节点都有一个对应的节点id,因此可以根据已知的扩缩容优化资源量以及需要进行扩缩容操作的节点的节点id生成扩缩容脚本命令,并根据所述扩缩容脚本命令对集群中的对应节点进行扩容和缩容调整。
[0158]
示例性的,生成的扩缩容脚本命令可以为“yarn rmadmin-updatenoderesource
[nodeid][vcores]”,其中[nodeid]和[vcores]分别表示对应节点的节点id和经过扩缩容操作后的扩缩容优化资源量。
[0159]
由以上技术方案可以看出,本技术能够通过获取预设时间段内的可用计算资源来对接收到的任务请求分配可用计算资源,并根据可用计算资源的总量和预设的扩缩容阈值对集群中的各节点进行动态的扩容和缩容操作,从而提高了计算资源的利用效率。
[0160]
请参见图3,是本技术实施例提供的一种电子设备的结构示意图。电子设备1包括存储器12和处理器13。存储器12用于存储计算机可读指令,处理器13用执行所述储器中存储的计算机可读指令以实现上述任一实施例所述的基于云计算的集群扩缩容方法。
[0161]
在一个可选的实施例中,电子设备1还包括总线、存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如基于云计算的集群扩缩容程序。
[0162]
图3仅示出了具有存储器12和处理器13的电子设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
[0163]
结合图1,电子设备1中的所述存储器12存储多个计算机可读指令以实现一种基于云计算的集群扩缩容方法,所述处理器13可执行所述多个指令从而实现:
[0164]
依据资源管理器获取预设时间段内的可用计算资源;
[0165]
对接收到的任务请求分配所述可用计算资源;
[0166]
对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;
[0167]
基于所述扩缩容操作结果计算集群的扩缩容优化资源量;
[0168]
基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。
[0169]
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
[0170]
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,电子设备1可以是总线型结构,也可以是星形结构,电子设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如电子设备1还可以包括输入输出设备、网络接入设备等。
[0171]
需要说明的是,电子设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本技术,也应包含在本技术的保护范围以内,并以引用方式包含于此。
[0172]
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质可以是非易失性的,也可以是易失性的。所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。存储器12在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smart media card,smc)、安全数字(secure digital,sd)卡、闪存卡(flash card)等。存储器12不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如基于云计算的集群扩缩容程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
[0173]
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各
种控制芯片的组合等。处理器13是电子设备1的控制核心(control unit),利用各种接口和线路连接整个电子设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行基于云计算的集群扩缩容程序等),以及调用存储在所述存储器12内的数据,以执行电子设备1的各种功能和处理数据。
[0174]
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个基于云计算的集群扩缩容方法实施例中的步骤,例如图1所示的步骤。
[0175]
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本技术。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在电子设备1中的执行过程。例如,所述计算机程序可以被分割成单元110、单元111、单元112、单元113、单元114。
[0176]
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本技术各个实施例所述的基于云计算的集群扩缩容方法的部分。
[0177]
电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
[0178]
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存储器及其他存储器等。
[0179]
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
[0180]
本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0181]
总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根箭头表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
[0182]
本技术实施例还提供一种计算机可读存储介质(图未示),计算机可读存储介质中
存储有计算机可读指令,计算机可读指令被电子设备中的处理器执行以实现上述任一实施例所述的基于云计算的集群扩缩容方法。
[0183]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0184]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0185]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0186]
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。说明书陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
[0187]
最后应说明的是,以上实施例仅用以说明本技术的技术方案而非限制,尽管参照较佳实施例对本技术进行了详细说明,本领域的普通技术人员应当理解,可以对本技术的技术方案进行修改或等同替换,而不脱离本技术技术方案的精神和范围。

技术特征:
1.一种基于云计算的集群扩缩容方法,其特征在于,所述方法包括:依据资源管理器获取预设时间段内的可用计算资源;对接收到的任务请求分配所述可用计算资源;对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;基于所述扩缩容操作结果计算集群的扩缩容优化资源量;基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。2.如权利要求1所述的基于云计算的集群扩缩容方法,其特征在于,所述依据资源管理器获取预设时间段内的可用计算资源包括:依据资源管理框架对资源管理器进行优化获得资源优化管理器;基于所述资源优化管理器统计预设时间段内的可用计算资源。3.如权利要求2所述的基于云计算的集群扩缩容方法,其特征在于,所述对接收到的任务请求分配所述可用计算资源包括:基于所述资源管理器对接收到的任务请求创建分配管理器,所述分配管理器用于管理所述任务请求;基于所述分配管理器执行调度算法以对所述任务请求进行调度;基于所述资源优化管理器对被调度的任务请求分配所述可用计算资源。4.如权利要求1所述的基于云计算的集群扩缩容方法,其特征在于,所述对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果包括:统计第一可用时间段内已分配的可用计算资源的平均值获得当前平均计算资源;统计第二可用时间段内已分配的可用计算资源的平均值获得历史平均计算资源;选取所述当前平均计算资源和历史平均计算资源中的数值较大者作为已分配计算资源总量;对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果,所述扩缩容阈值包括扩容阈值和缩容阈值。5.如权利要求4所述的基于云计算的集群扩缩容方法,其特征在于,所述对比所述已分配计算资源总量和预设的扩缩容阈值获得扩缩容操作结果包括:若所述已分配计算资源总量大于扩容阈值,则扩缩容操作结果为对集群进行扩容操作;若所述已分配计算资源总量小于缩容阈值,则扩缩容操作结果为对集群进行缩容操作;若所述已分配计算资源总量不大于扩容阈值且不小于缩容阈值,则扩缩容操作结果为不对集群进行扩缩容操作。6.如权利要求5所述的基于云计算的集群扩缩容方法,其特征在于,所述基于所述扩缩容操作结果计算集群的扩缩容优化资源量包括:若所述扩缩容操作结果为对集群进行扩容操作,则依据所述已分配计算资源总量与所述缩容阈值的比值计算集群的扩缩容优化资源量;若所述扩缩容操作结果为对集群进行缩容操作,则依据所述已分配计算资源总量与所述扩容阈值的比值计算集群的扩缩容优化资源量。7.如权利要求1所述的基于云计算的集群扩缩容方法,其特征在于,所述基于所述扩缩
容优化资源量对集群中各节点进行扩容和缩容调整包括:基于所述扩缩容优化资源量生成扩缩容脚本命令;基于所述扩缩容脚本命令对集群中各节点进行扩容或缩容调整。8.一种基于云计算的集群扩缩容装置,其特征在于,所述装置包括:获取单元,用于依据资源管理器获取预设时间段内的可用计算资源;分配单元,用于对接收到的任务请求分配所述可用计算资源;对比单元,用于对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;计算单元,用于基于所述扩缩容操作结果计算集群的扩缩容优化资源量;调整单元,用于基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。9.一种电子设备,其特征在于,所述电子设备包括:存储器,存储有计算机可读指令;及处理器,执行所述存储器中存储的计算机可读指令以实现如权利要求1至7中任意一项所述的基于云计算的集群扩缩容方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如权利要求1至7中任一项所述的基于云计算的集群扩缩容方法。

技术总结
本申请提出一种基于云计算的集群扩缩容方法、装置、电子设备及存储介质,基于云计算的集群扩缩容方法包括:依据资源管理器获取预设时间段内的可用计算资源;对接收到的任务请求分配所述可用计算资源;对比已分配的可用计算资源与预设的扩缩容阈值以确定扩缩容操作结果;基于所述扩缩容操作结果计算集群的扩缩容优化资源量;基于所述扩缩容优化资源量对集群中各节点进行扩容和缩容调整。本申请能够通过获取预设时间段内的可用计算资源来对接收到的任务请求分配可用计算资源,并根据可用计算资源的总量和预设的扩缩容阈值对集群中的各节点进行动态的扩容和缩容操作,从而提高了计算资源的利用效率。算资源的利用效率。算资源的利用效率。


技术研发人员:刘潭义 张观成 万书武
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2023.02.09
技术公布日:2023/7/11
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐