一种基于Spark任务标识的任务调度方法与流程
- 国知局
- 2024-07-31 22:56:29
本发明涉及计算机,尤其涉及一种基于spark任务标识的任务调度方法。
背景技术:
1、近年来,随着社交网络和物联网等技术的飞速发展,许多领域中如银行业务、医疗保健、商业预测和科学探索等,都存在大量数据分析需求,大数据处理已变得至关重要,spark框架已经被广泛应用于大数据处理中,但spark任务在任务执行过程中存在处于空闲状态的节点负载不均衡问题,从而导致整体任务时间跨度高,任务执行效率低,集群计算资源利用不充分的情况。
2、中国专利申请公开号:cn112948066a公开了一种基于异构资源的spark任务调度方法。该方法包括:master节点根据收集到的spark集群中各计算节点上的片上系统信息,对每个cpu核级别的计算能力进行分析;master节点根据待执行任务的运算量与cpu核级别的计算能力进行匹配,将任务分配给slave计算节点并向slave节点指示所分配的cpu核标识;slave计算节点根据master节点所指定分配的cpu核标识,将任务绑定在相应的cpu核上执行。该发明的方法能够提高任务执行效率,尤其能够减少关键任务的执行时间。
3、由此可见,现有技术存在对spark任务的分析不够精准导致任务调度方法不合理造成资源利用率低的问题。
技术实现思路
1、为此,本发明提供基于spark任务标识的任务调度方法,用以克服现有技术中对spark任务的分析不够精准导致任务调度方法不合理造成资源利用率低的问题。
2、为实现上述目的,本发明提供基于spark任务标识的任务调度方法,包括:
3、为每个spark任务定义唯一的标识符,将标识后的spark任务存储到待执行任务队列中;
4、根据待执行任务队列中单个任务执行完成的时间与单个任务存在依赖关系的其他任务数量确定单个任务的优先级;
5、根据执行任务调度时集群资源的空闲资源内存以及待执行任务队列中最高优先级任务的优先级确定各任务的执行顺序;
6、将调度的任务发送给可用的spark集群执行,在任务执行完成后使用spark的任务状态监控功能来检测任务的完成状态,并将任务的完成状态信息存储到数据库中;
7、根据spark任务执行时集群资源的空闲资源占比小于预设占比的时长以及任务完成合格程度确定任务调度参数的调整量,其中,所述任务调度参数包括待调度任务队列中任务最大执行时长和最高优先级任务的执行所需内存。
8、进一步地,在确定单个任务的优先级时,包括:
9、根据单个任务执行完成的时间与预设时间的比对结果确定所述任务的优先级;
10、根据单个任务执行完成的时间与预设时间的比对结果以及与所述任务存在依赖关系的其他任务数量与预设任务数量的比对结果确定所述任务的优先级。
11、进一步地,所述预设任务数量根据待调度任务队列中与各任务存在依赖关系的任务数量的平均值与一的差值确定。
12、进一步地,所述确定各任务的执行顺序,包括:
13、根据执行任务调度时集群资源的空闲资源内存与待执行任务队列中的最高优先级任务的执行所需内存的比对结果确定各任务的执行顺序;
14、根据执行任务调度时集群资源的空闲资源内存与待执行任务队列中的最高优先级任务的执行所需内存的比对结果以及最高优先级任务的优先级确定各任务的执行顺序;
15、其中,第一优先级任务的优先级高于第二优先级,第二优先级任务的优先级高于第三优先级。
16、进一步地,所述最高优先级任务的执行所需内存根据所述最高优先级任务执行占用内存的历史平均值确定。
17、进一步地,将调度的任务发送给可用的spark集群执行时,还包括将任务的状态、运行时间以及进度存储到数据库中。
18、进一步地,在确定任务调度参数的调整量时,包括:
19、根据spark任务执行时集群资源的空闲资源占比小于预设占比的时长与预设时长的比对结果确定任务调度参数的调整量;
20、根据spark任务执行时集群资源的空闲资源占比小于预设占比的时长与预设时长的比对结果以及根据任务完成合格程度与预设任务完成合格程度的比对结果确定任务调度参数的调整量。
21、进一步地,所述预设时长根据任务调度过程中等待至集群资源的空闲资源内存大于所述最高优先级任务的执行所需内存再调度所述最高优先级任务的平均等待时长确定。
22、进一步地,所述待调度任务队列中任务最大执行时长的调整量与空闲资源的空闲时间呈负相关,所述最高优先级任务的执行所需内存的调整量与空闲资源的空闲时间呈正相关。
23、进一步地,所述任务完成合格程度由以下公式计算,设定:
24、;
25、其中,g表示任务完成合格程度,r0表示预设任务重试次数,r表示任务重试次数,a表示任务调度过程中任务的执行数量,yi表示第i个任务执行时长,yi0表示第i个任务预设执行时长。
26、与现有技术相比,本发明的有益效果在于,本发明通过根据单个任务的执行完成时间与预设时间的比对结果初步确定任务的优先级,当执行完成时间大于等于预设时间时,说明该任务即将到达截止日期,故将该任务的优先级设置为第一优先级,当执行完成时间小于预设完成时间时进一步判定任务的优先级,通过上述方法避免了因任务不能及时执行导致紧急性任务未能及时执行的现象发生,提高了对spark任务分析的精准性进而提高资源利用率。
27、进一步地,本发明通过与所述任务存在依赖关系的其他任务数量与预设任务数量的比对结果进一步确定任务的优先级,当其他任务数量大于等于预设任务数量时确定所述任务的优先级为第二优先级,当其他任务数量小于预设任务数量时确定所述任务的优先级为第三优先级,通过上述方法可以避免因存在依赖关系的任务未能及时执行导致依赖所述任务的任务也未能执行进而降低了任务执行效率,提高了对spark任务分析的精准性进而提高资源利用率。
28、进一步地,本发明根据空闲资源内存与待调度任务执行所需内存的比对结果确定任务的执行顺序,当空闲资源内存大于待调度任务执行所需内存时,说明空闲资源内存可以支持最高优先级任务执行,当空闲资源内存小于等于待调度任务执行所需内存时,说明空闲资源内存不足以支持最高优先级任务执行,此时根据最高优先级任务的优先级为第一优先级确定任务紧急,确定等待至集群资源的空闲资源内存大于所述最高优先级任务的执行所需内存再调度所述最高优先级任务,根据最高优先级任务的优先级不是第一优先级确定任务不紧急,确定调度任务执行所需内存小于集群资源的空闲资源内存中最高优先级的任务,通过上述方法可以避免因空闲资源不足以支撑最高优先级任务执行导致第一优先级的紧急任务不能及时执行造成任务逾期的现象发生,提高了对spark任务分析的精准性进而提高资源利用率。
29、进一步地,本发明根据spark任务执行时集群资源的空闲资源占比小于预设占比的时长与预设时长的比对结果确定对任务调度参数进行调整,当时长大于等于预设时长时,说明任务执行效率低,需要对任务调度参数调整,当时长小于预设时长时,需要对任务的执行合格程度进一步分析以确定是否对任务调度参数调整,通过上述方法提高了对spark任务分析的精准性进而提高资源利用率,本发明通过任务重试次数以及任务执行时长确定任务执行过程的合格程度,避免了因任务执行失败而未执行任务导致任务执行的时长小于预设时长造成对任务执行过程误判的现象发生,通过上述方法提高了对spark任务分析的精准性进而提高任务执行效率。
30、进一步地,本发明通过空闲资源的空闲时间与预设空闲时间的比对结果确定调整方式,当空闲时间大于等于预设空闲时间时,说明空闲时间太长导致资源利用率低,确定以第一调整系数减小待调度任务队列中任务最大执行时长进而提高第一优先级任务的判定参数以减少等待至集群资源的空闲资源内存大于所述最高优先级任务的执行所需内存再调度所述最高优先级任务的等待时间,当空闲时间小于预设空闲时间时,说明最高优先级任务在执行时因内存不够大导致执行时间长造成任务执行过程效率低,确定以第二调整系数对所述最高优先级任务的执行所需内存调整,通过上述方法提高了对spark任务分析的精准性进而提高任务执行效率。
本文地址:https://www.jishuxx.com/zhuanli/20240730/195422.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。