本发明涉及一种大数据计算任务调度方法,尤其涉及一种基于拉模式的分布式大数据计算任务调度方法。
背景技术:
1、在当今快速发展的科技领域中,任务调度作为管理和优化计算资源的重要工具,扮演者至关重要的角色。从单机环境到分布式系统,任务调度的演进不仅跟随者计算机技术的进步,更是为了应对日益复杂的应用场景和需求。
2、随着互联网和大数据时代的到来,单一计算节点已经无法满足海量数据处理和复杂计算的需求。分布式系统以其能够横向扩展、高可靠性等优势成为解决这一问题的主要手段;而在分布式系统中,任务调度则更加复杂和关键,需考虑到网络通信、节点故障和数据一致性等诸多因素,以确保任务能够按时完成并保持系统的稳定运行。
技术实现思路
1、为了解决上述技术所存在的不足之处,本发明提供了一种基于拉模式的分布式大数据计算任务调度方法。
2、为了解决以上技术问题,本发明采用的技术方案是:一种基于拉模式的分布式大数据计算任务调度方法,包括以下步骤:
3、步骤s1:搭建去中心化调度引擎和执行引擎;
4、步骤s2:配置任务队列以用于任务的迁移;任务队列包括执行计划队列、待执行队列、执行中队列和执行完成队列;
5、步骤s3:基于web网页或api接口生成待调度大数据计算任务;
6、步骤s4:调度引擎调度大数据计算任务至相应的任务队列;
7、步骤s5:执行引擎从任务队列中以拉模式即请求拉取大数据计算任务,并进行任务执行;
8、若执行引擎执行任务失败,具有重试机制即将大数据计算任务插回任务队列中按照优先级重新执行;任务队列中设置优先级的公式为:
9、
10、其中,priority为优先级;maxweight为最大权重限制;weight为任务执行权重;retrytimes为执行失败重试次数,具有最大限制;
11、若执行引擎执行任务成功,则判断执行器的状态以获取下一个大数据计算任务,若获取成功,则继续执行任务;若获取失败,执行引擎休眠n秒,并重新判断执行器状态以获取下一个大数据计算任务;执行擎休眠时间的计算公式为:
12、
13、其中,slerptime为引擎休眠时间;lastrequeat为执行引擎上次拉取任务情况,值为1或0,1代表拉取任务成功,0为拉取任务失败;runingnum为服务器上所执行引擎的数量;cpunum为cpu的物理核心数量;n为请求间隔基数,单位为秒;averageexecutiontime为近十次平均执行时间基数;
14、步骤s6:调用调度引擎维护任务队列。
15、进一步地,步骤s2中待执行队列中的任务类型包括立即执行任务、定时执行任务和失败重试任务。
16、进一步地,步骤s2中执行完成队列包括两种任务状态的任务即执行成功状态和执行失败状态。
17、进一步地,步骤s4中调度引擎调度大数据计算任务的方式包括立即执行任务调度和定时执行任务调度。
18、进一步地,立即执行任务调度,包括以下步骤:
19、步骤s41-1:通过web网页或api接口的方式,触发立即执行事件;
20、步骤s41-2:将需要立即执行的大数据计算任务进行实例化,并发送至任务队列的待执行队列中等待执行。
21、进一步地,定时执行任务调度,包括以下步骤:
22、步骤s42-1:通过web页面或api接口的方式,配置定时参数;
23、步骤s42-2:通过web页面或api接口的方式,配置任务定时计划的生命周期;
24、步骤s42-3:根据配置定时参数,生成生命周期内所需执行的全部任务实例,并插入至任务队列的执行计划队列中;
25、步骤s42-4:定时轮询执行计划队列,取出到达执行事件的任务,并发送至待执行队列中。
26、进一步地,对步骤s5中任务执行权重进行分段,权重分段包括立即执行权重分段、定时任务权重分段和失败重试权重分段。
27、进一步地,步骤s5中执行引擎运行,包括以下步骤:
28、步骤s51-1:将引擎状态设置为启动;
29、步骤s51-2:从待执行队列中获取等待执行的任务,进行任务执行;
30、步骤s51-3:判断任务是否执行成功,调用维护任务队列的接口维护任务状态;若执行失败则执行失败接口将任务插回任务队列重新执行任务;执行成功则调用执行成功接口继续执行下一个大数据计算任务;
31、步骤s51-4:执行任务成功后,判断执行器状态是否为启动,若执行器状态为待停止,则结束执行引擎运行;若为启动,则查询待执行任务队列中是否有待执行任务;
32、步骤s51-5:若有待执行任务,则从待执行队列中获取任务并执行任务,若未获取到待执行任务,则执行引擎休眠n秒,并重新判断执行器状态并获取下一个大数据计算任务。
33、进一步地,步骤s5中重试机制内限制有失败重试次数。
34、进一步地,在任务队列中执行引擎拉取并执行任务,包括以下步骤:
35、步骤s52-1:执行引擎从待执行队列中拉取大数据计任务至执行中队列,等待任务执行;
36、步骤s52-2:执行大数据计算任务,执行完成后从执行中队列中移除;
37、步骤s52-3:判断任务是否执行成功;若执行成功,则保存为执行成功任务,保存至执行完成队列中;
38、步骤s52-4:若执行任务未成功,则判断是否超过重试次数;若未超过重试次数,则重试失败任务,继续插入待执行队列中进行等待;若超过重试次数,则保存为执行失败任务,保存至执行完成队列中。
39、本发明公开了一种基于拉模式的分布式大数据计算任务调度方法,通过使用任务队列配合拉模式的分布式调度方法,优化了执行引擎的设计,解决了在需要提高资源利用率或动态分配资源的场景中所遇到的任务调度问题;去中心化工作模式,通过协调完成任务调度,使任务执行集群具备极佳的动态扩展能力,显著提升了集群处理任务的吞吐量;任务队列的使用也保障了任务的有序执行和容灾机制,提高了整个任务调度与执行过程的稳定性。
1.一种基于拉模式的分布式大数据计算任务调度方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述步骤s2中待执行队列中的任务类型包括立即执行任务、定时执行任务和失败重试任务。
3.根据权利要求1所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述步骤s2中执行完成队列包括两种任务状态的任务即执行成功状态和执行失败状态。
4.根据权利要求1所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述步骤s4中调度引擎调度大数据计算任务的方式包括立即执行任务调度和定时执行任务调度。
5.根据权利要求4所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述立即执行任务调度,包括以下步骤:
6.根据权利要求4所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述定时执行任务调度,包括以下步骤:
7.根据权利要求1所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:对所述步骤s5中任务执行权重进行分段,权重分段包括立即执行权重分段、定时任务权重分段和失败重试权重分段。
8.根据权利要求7所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述步骤s5中执行引擎运行,包括以下步骤:
9.根据权利要求8所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:所述步骤s5中重试机制内限制有失败重试次数。
10.根据权利要求9所述的基于拉模式的分布式大数据计算任务调度方法,其特征在于:在所述任务队列中执行引擎拉取并执行任务,包括以下步骤:
