基于Presto调度的弹性伸缩方法与弹性伸缩装置与流程

文档序号:33809166发布日期:2023-04-19 13:10阅读:37来源:国知局
基于Presto调度的弹性伸缩方法与弹性伸缩装置与流程

本申请涉及容器云,具体而言,涉及一种基于presto调度的弹性伸缩方法、弹性伸缩装置与计算机可读存储介质。


背景技术:

1、当前计算与存储分离部署方案是基于云计算与大数据结合的方式,presto计算与hdfs(分布式文件系统,hadoop distributed file system,简称hdfs)存储分离后,存在着presto本地调度优化策略失效问题。由于k8s(kubernetes)容器集群实现弹性伸缩的监控指标是cpu以及内存使用率等信息,这样会使得扩展出的pod又被presto的计算任务消耗完cpu和内存等等。若k8s集群继续扩展,这样便会导致pod数不可控。

2、因此,亟需一种能够避免依据cpu以及内存使用率作为监控指标的弹性伸缩导致的pod数不可控的方法。


技术实现思路

1、本申请的主要目的在于提供一种基于presto调度的弹性伸缩方法、弹性伸缩装置与计算机可读存储介质,以解决现有技术中依据cpu以及内存使用率作为监控指标的弹性伸缩导致的pod的数量不可控的问题。

2、根据本发明实施例的一个方面,提供了一种基于presto调度的弹性伸缩方法,包括:在查询请求需独立运行且为核心业务的情况下,获取初始集群的目标性能指标以及所述查询请求的目标查询信息,其中,所述初始集群中包括多个pod,所述目标性能指标至少包括所述初始集群的内存使用率以及cpu占用率,所述目标查询信息至少包括元数据信息和上下文信息;至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩。

3、可选地,至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩,包括:根据所述目标性能指标和所述目标查询信息,确定目标pod数量,其中,所述目标pod数量为对所述初始集群进行扩展的pod的数量;根据所述目标pod数量,确定扩展所述目标pod数量的所述pod所需占用的目标内存空间;根据所述查询请求对应的hdfs地址以及所述目标内存空间,对所述初始集群进行弹性伸缩。

4、可选地,根据所述查询请求对应的hdfs地址以及所述目标内存空间,对所述初始集群进行弹性伸缩,包括:对所述hdfs地址进行切分,得到多个hdfs子地址;对多个所述hdfs子地址进行遍历,以确定各所述hdfs子地址对应的剩余内存空间;在存在一个所述剩余内存空间大于或者等于所述目标内存空间的情况下,在对应的所述hdfs子地址上弹出所述目标pod数量的所述pod;在各所述剩余内存空间均小于所述目标内存空间的情况下,在目标集群上弹出所述目标pod数量的所述pod,其中,所述目标集群为初始预留的备用的所述pod所在的集群。

5、可选地,在至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩之后,所述弹性伸缩方法包括:将所述目标pod数量的所述pod加入到候选队列中,并确定所述候选队列中各所述pod所处理的任务数量是否达到目标数值,其中,所述目标数值为一个所述目标pod所处理的任务数量的上限值;在目标pod所处理的任务数量未达到所述目标数值的情况下,将任务队列中的未分配任务提交至所述目标pod,其中,所述目标pod为多个所述pod中的一个,所述未分配任务为所述查询请求对应的未被分配的任务;在各所述pod所运行的任务数量均达到所述目标数值的情况下,将所述未分配任务加入到所述任务队列中。

6、可选地,确定所述查询请求是否独立运行的过程包括:确定所述查询请求的优先级;在所述优先级高于目标等级和/或所述查询请求对应的数据量大于或者等于目标数量的情况下,确定所述查询请求独立运行;在所述优先级低于所述目标等级和/或所述查询请求对应的数据量小于所述目标数量的情况下,确定所述查询请求不独立运行。

7、可选地,在所述优先级低于所述目标等级和/或所述查询请求对应的数据量小于所述目标数量的情况下,确定所述查询请求不独立运行之后,所述弹性伸缩方法还包括:确定候选队列中的目标pod所处理是否达到目标数值,其中,所述目标pod为多个所述pod中的一个,所述目标数值为一个所述目标pod所处理的任务数量的上限值;在所述目标pod所处理的任务未达到所述目标数值的情况下,将任务队列中的未分配任务提交至所述目标pod,其中,所述未分配任务为所述查询请求对应的未被分配的任务;在各所述pod所运行的任务数量均达到所述目标数值的情况下,将所述未分配任务加入到达所述任务队列中。

8、可选地,在查询请求需独立运行且为核心业务的情况下,获取初始集群的目标性能指标以及所述查询请求的目标查询信息之前,所述弹性伸缩方法还包括:确定是否开启强制调度策略,所述强制调度策略用于表征是否根据所述目标性能指标和所述目标查询信息进行弹性伸缩的策略;在未开启所述强制调度策略的情况下,确定所述查询请求对应的hdfs地址;根据所述hdfs地址,确定对应的目标机架位置,并将所述目标机架位置对应的pod加入到候选队列中。

9、可选地,所述弹性伸缩方法还包括:在所述查询请求对应的任务均已被执行完成的情况下,将查询结果发送至客户端,所述查询结果为所述查询请求对应的查询结果。

10、根据本发明实施例的另一方面,还提供了一种基于presto调度的弹性伸缩装置,包括:获取单元,用于在查询请求需独立运行且为核心业务的情况下,获取初始集群的目标性能指标以及所述查询请求的目标查询信息,其中,所述初始集群中包括多个pod,所述目标性能指标至少包括所述初始集群的内存使用率以及cpu占用率,所述目标查询信息至少包括元数据信息和上下文信息;弹性伸缩单元,用于至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩。

11、根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的基于presto调度的弹性伸缩方法。

12、在本发明实施例中,所述的基于presto调度的弹性伸缩方法中,在接收到的查询请求既需独立运行又为核心业务的情况下,获取所述查询请求对应的初始化的初始集群的目标性能指标以及所述查询请求对应的目标查询信息,再至少根据所述初始集群的所述目标性能指标和所述目标查询信息,对初始集群进行弹性伸缩。与现有技术中仅基于初始集群对应的目标性能指标,对初始集群进行弹性伸缩的方法相比,本申请的弹性伸缩方法中,至少基于初始集群对应的目标性能指标和查询请求对应的目标查询信息,对初始集群进行弹性伸缩,即实现了基于初始集群对应的目标性能指标以及自定义的弹性伸缩指标(即查询请求所对应的上下文信息和元数据信息),对初始集群进行弹性伸缩,这样实现了动态地对资源进行编排控制,以及缓解了资源竞争导致的等待排队问题,避免了仅依据cpu以及内存使用率(即初始集群对应的目标性能指标)作为监控指标的弹性伸缩导致的pod的数量不可控的问题,达到了提高服务的稳定性以及资源利用率的目的。



技术特征:

1.一种基于presto调度的弹性伸缩方法,其特征在于,包括:

2.根据权利要求1所述的弹性伸缩方法,其特征在于,至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩,包括:

3.根据权利要求2所述的弹性伸缩方法,其特征在于,根据所述查询请求对应的hdfs地址以及所述目标内存空间,对所述初始集群进行弹性伸缩,包括:

4.根据权利要求2或3所述的弹性伸缩方法,其特征在于,在至少根据所述目标性能指标和所述目标查询信息,对所述初始集群进行弹性伸缩之后,所述弹性伸缩方法包括:

5.根据权利要求1所述的弹性伸缩方法,其特征在于,确定所述查询请求是否独立运行的过程包括:

6.根据权利要求5所述的弹性伸缩方法,其特征在于,在所述优先级低于所述目标等级和/或所述查询请求对应的数据量小于所述目标数量的情况下,确定所述查询请求不独立运行之后,所述弹性伸缩方法还包括:

7.根据权利要求1所述的弹性伸缩方法,其特征在于,在查询请求需独立运行且为核心业务的情况下,获取初始集群的目标性能指标以及所述查询请求的目标查询信息之前,所述弹性伸缩方法还包括:

8.根据权利要求4所述的弹性伸缩方法,其特征在于,所述弹性伸缩方法还包括:

9.一种基于presto调度的弹性伸缩装置,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至8中任意一项所述的基于presto调度的弹性伸缩方法。


技术总结
本申请提供了一种基于Presto调度的弹性伸缩方法与弹性伸缩装置。该弹性伸缩方法包括:在查询请求需独立运行且为核心业务的情况下,获取初始集群的目标性能指标以及查询请求的目标查询信息,其中,目标性能指标至少包括初始集群的内存使用率以及CPU占用率,目标查询信息至少包括元数据信息和上下文信息;至少根据目标性能指标和目标查询信息,对初始集群进行弹性伸缩。实现了动态地对资源进行编排控制,以及缓解了资源竞争导致的等待排队问题,避免了仅依据CPU以及内存使用率(即初始集群对应的目标性能指标)作为监控指标的弹性伸缩导致的POD的数量不可控的问题,达到了提高服务的稳定性以及资源利用率的目的。

技术研发人员:谢伟,吴佳华,侯小月,毛宁,田浩
受保护的技术使用者:中国邮政储蓄银行股份有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1