一种教育云平台中的大数据任务调度方法与流程

文档序号:18028614发布日期:2019-06-28 22:24阅读:313来源:国知局
一种教育云平台中的大数据任务调度方法与流程

本发明涉及云计算与大数据技术领域,具体涉及一种教育云平台中的大数据任务调度方法。



背景技术:

云计算环境下,物理机中所有虚拟机对于物理资源的使用总量一般都少于物理资源的总量。为了提高物理资源的利用率,在构建虚拟资源池(包括计算、存储、网络等资源)时,资源通常会超配(物理机中所有虚拟机的vcpu或/和内存资源总量超过了物理机本身的资源限制)。

随着云计算的快速发展,很多高校、培训机构及企事业单位的培训部门(统称培训单位)都建立了教育云平台,以对不同的实验课程提供支持。为支持受培训者进行大数据教学实验,云平台需要为每个受培训者配置独立的大数据集群(虚拟机集群)来进行大数据分析实验。较低配置(如8g内存、8vcpu、20g硬盘)的大数据集群(虚拟机集群)计算能力有限,只能用于在小数据集上进行实验;而较高配置(如640g内存、128vcpu、8t硬盘)的大数据集群(虚拟机集群)需要较多的物理机资源。为了能够给每个受培训者提供较高配置的大数据集群,突破培训单位的物理机资源有限的问题,培训单位需要使用较高的资源超配比来构建虚拟资源池支持实验。

在大数据分析实验课程中,受培训者大部分时间都在编程、查资料、写文档等,虚拟机在这段时间使用物理资源量低;受培训者只在少数时间提交并运行大数据任务。大数据任务运行时,虚拟机集群对于物理资源的使用量很高。考虑到受培训者的实验进度差不多,过多需要运行较长时间的大数据任务可能在差不多时间提交并运行,造成在物理资源超配较高的情况下,过多的大数据任务并发运行在不同的大数据集群(虚拟机集群)中,导致物理机集群负载过大,用户体验差。为了防止过多的大数据任务并发运行在不同的大数据集群(虚拟机集群)中,需要设计一种不同于标准云平台任务调度的大数据任务调度方法,对受培训者提交的任务进行合理调度,在较少总体资源,资源超正常超配的情况下,适当调度减少并发大数据任务,确保良好用户体验。

现有大数据任务调度方法无法对教育云平台中所有受培训者的大数据任务进行合理调度:现有大数据任务调度方法通常直接利用云平台的工作调度机制,不能对多个大数据虚拟集群的大数据任务进行统一调度,或者仅仅根据大数据任务运行数量以及预设阈值进行任务调度,容易导致资源的使用率在一些时段很低,但在另外一些时段超高。

因而,需要一种新的大数据任务调度方法,实现对教育云平台中所有受培训者的大数据任务进行合理统一调度。这种调度方法应该根据云平台的总体资源、任务优先级、预期任务的资源需求量以及运行时间进行任务调度,防止过多用户同时通过其已获得分配的超高超配大数据集群(虚拟机集群)运行高并发的资源密集型的大数据任务,从而支持培训单位利用较为有限的物理机资源为每个受培训者提供有效的大数据实验环境。



技术实现要素:

本发明提供了一种教育云平台中的大数据任务调度方法,用于解决现有大数据任务调度方法无法对教育云平台中所有受培训者的大数据任务进行合理调度的问题,能防止过多用户同时通过其已获得分配的虚拟机集群高并发运行资源密集型的大数据任务,从而支持高校、培训机构、企事业单位等培训机构利用有限物理机资源为每个受培训者提供有效的大数据实验环境。

为了解决上述问题,本发明采用如下技术方案:一种教育云平台中的大数据任务调度方法,大数据任务调度方法运行在基于云计算技术的教育云平台,根据云平台的总体资源、核心大数据处理任务优先级及其资源需求量、预期任务运行时间进行任务调度;所述任务调度步骤包括:

1)受培训者提交任务;

2)系统自动拦截任务请求,并判断任务是否为大数据任务;若不是大数据任务,系统直接调度任务;否则,进入下一步骤;

3)判断任务是否为教师建议的核心任务,若是核心任务,则预测核心任务需要的系统资源及运行时间;否则,将任务的运行优先级设为最低;

4)根据任务代码、数据源、任务名称、任务运行参数,在数据库中添加相应的任务实例;

5)根据调度方法将任务添加到任务队列中;

6)根据调度方法从任务队列中获取运行优先级最高的任务;

7)当云平台的资源满足任务的资源需求时,进入下一步骤;否则,将任务重新添加到任务队列中;

8)按任务的资源需求分配资源后,如果用户当前使用的资源没有超过用户最大可用资源时,将任务分发到相应受培训者的大数据集群中;否则,将任务重新添加到任务队列中。

优选地,对于每个实验,受培训者通过系统设定以下任一种调度方法,以完成调度任务过程:

a)先到先服务调度算法:在满足任务资源需求的情况下,先提交的任务先运行;

b)高优先级优先调度算法:在满足任务资源需求的情况下,优先级高的任务先运行;

c)最快完成优先调度算法:在满足任务资源需求的情况下,根据任务预测运行时间,能够最快完成的任务优先运行;

d)最低资源需求得分优先调度算法;

e)资源需求得分与运行时间积最小优先调度算法:在各分项资源均满足的任务中,选取任务资源需求得分与运行时间积最小的任务先运行;

如果系统没有设定调度算法,缺省调度算法为e)。

优选地,最低资源需求得分优先调度算法d)中,任务j的资源需求得分为:

sj=k1cj+k2mj+k3ij+k4dj

其中cj表示任务j需要的计算能力;mj表示任务j需要的内存;ij表示任务j需要的中间结果存储空间;dj表示任务j需要的磁盘空间;k1、k2、k3、k4的取值保证k1cj、k2mj、k3ij、k4dj的值均在0-1之间;在各分项资源均满足的任务中,选取得分最少的任务先运行。

优选地,所述核心任务需要的系统资源以及运行时间的预测,采用以下算法实现:

s31:教师试运行实验的核心任务,系统记录每个核心任务所需的系统资源及运行时间;

s32:受培训者运行实验时,如果其运行的核心任务j匹配教师建议的核心任务,则任务j在第i次运行需要的资源和运行时间分别为rj(i-1)和tj(i-1);如果任务j在第i次成功运行且云平台检测到任务j所需系统资源为rji、运行时间为tji,则将任务j的预测资源需求量及运行时间分别更新为:

rj(i)=arj(i-1)+(1-a)rji

tj(i)=btj(i-1)+(1-b)tji

其中rj(i)和tj(i)分别表示核心任务j在第i次运行后的预测资源需求量与运行时间,rj(0)和tj(0)分别表示系统仅依据教师运行核心任务的历史信息预测任务j需要的系统资源以及运行时间;a和b均为取值在(0,1)区间的可预设的常量;如果任务j未能匹配教师建议的核心任务,则其运行需要的资源与运行时间未知,运行优先级为最低。

优选地,任务的运行优先级由其用户u已提交但未运行的任务数mu、任务所需资源及运行时间决定。在优选的实施例中,任务的运行优先级设置成k级别,任务j的运行优先级为:

其中mu<k,as<k;s0、t0、as、k均为可预设的常量,s0、t0分别表示任务的标准资源需求得分和标准运行时间;sj、tj分别表示任务j的资源需求得分和运行时间。

从以上技术方案可知,本发明针对大数据教学平台平均资源使用量低、峰值资源需求高的特点,提出一种基于逻辑隔离、资源超正常超配的调度方法,对高峰核心业务进行核心资源需求预测、任务排队与调度管理。在总资源有限的情况下,大数据教学平台能以较低成本支持受培训者高效完成大数据实验。与现有技术相比,本发明的技术方案取得了如下有益效果:

1、能够根据云平台的总体资源、任务优先级、任务的资源需求量以及预期运行时间进行任务调度,防止过多用户同时通过其已获得分配的超高超配大数据集群(虚拟机集群)运行资源密集型的大数据任务,从而支持培训单位利用较为有限的物理机资源为每个受培训者提供有效的大数据实验环境;

2、能够根据用户已提交但未运行的任务数、任务所需资源及运行时间设置任务的优先级,并根据任务优先级进行任务调度;

3、能够预测任务资源需求量并根据任务需求量进行任务调度,实现资源的合理分配;

4、支持不同的大数据任务调度方法,满足不同的调度需求。

附图说明

图1为本发明教育云平台的结构示意图;

图2本发明教育云平台中的大数据任务调度的时序图;

图3为本发明教育云平台中的大数据任务调度的流程图;

图4为资源有限的大数据实验云平台、资源充足的大数据实验云平台、普通云平台、本发明的云平台对比图。

具体实施方式

以下结合附图和具体实施例对本发明做进一步的阐述,但本发明的实施方式不限于此。

图1为本发明教育云平台的结构示意图。在具体的实施过程中,本发明的大数据任务调度方法运行在一个基于云计算技术的教育云平台,根据云平台的总体资源、核心大数据处理任务优先级及其资源需求量、预期任务运行时间进行任务调度。所述的教育云平台包括大数据实验教学管理系统,支持给每个受培训者按照教学大纲要求配置软硬件资源并构建大数据实验环境。大数据实验环境按需构建,依据课程要求、基于实验环境模板自动生成包括基于虚拟云桌面集群的分布式大数据处理运行硬件环境、系统软件环境和支持大数据处理的软件系统包。

在具体的实施过程中,所述大数据任务调度方法包括任务管理、任务调度、资源管理;大数据实验教学管理系统包括任务管理模块、资源管理模块和任务调度模块。任务管理模块负责管理受培训者的大数据任务,包括提交、删除、运行情况跟踪,同时负责预测任务的系统资源需求量以及运行时间;任务调度模块根据系统资源信息、任务的运行优先级、任务的系统资源需求量及预期运行时间安排任务运行;资源管理模块负责管理系统总体资源、实时可用资源及用户对资源的使用情况,为任务调度模块安排资源,完成用户提交的任务。

大数据任务是受培训者在运行大数据处理软件时,按软件系统提供标准接口,如命令行运行界面、ide运行界面或者web页面,提交的作业。

图2为本发明教育云平台中的大数据任务调度的时序图。在具体的实施过程中,任务管理模块在用户通过大数据处理软件系统提供的标准接口提交任务后,自动拦截任务请求,并根据用户提交的任务代码、数据源、任务名称、任务运行参数等参数在数据库中添加相应的任务实例,然后再通过本发明调度方法的任务调度模块统一安排调度,在合适时间将任务提交给云平台的任务调度模块,按资源实际要求统一安排运行。

在具体的实施过程中,任务管理模块由大数据实验教学管理系统依据教学方案,提供一个受培训者完成每次实验的核心任务列表,并依据教师或者平台运行历史信息预测核心任务需要的系统资源以及运行时间。任务管理模块将核心任务列表保存在数据库中,不同核心任务需要不同的系统资源以及运行时间。如果用户提交的任务在核心任务列表中,则可以预测其所需资源及运行时间;否则,任务所需的资源及运行时间未知。系统资源包括计算能力、内存、中间结果存储、硬盘。

所述资源管理模块负责管理系统及每个用户的总资源、监控资源实时使用情况,处理资源的分配与回收。当任务运行时,空闲资源将减少;任务完成时,资源将返回资源池。在具体的实施过程中,云平台资源的实时监控通过在物理机集群中的每一台物理机中安装代理服务,代理服务负责定时获取物理机资源的信息并发送到资源管理模块,资源管理模块负责把资源信息保存到数据库中。

图3为本发明教育云平台中的大数据任务调度的流程图,在具体的实施过程中,如图3所示,任务调度步骤包括:

1)受培训者提交任务;

2)系统自动拦截任务请求,并判断任务是否为大数据任务。如果该任务不是大数据任务,系统直接调度任务;否则,进入下一步骤;

3)判断任务是否为教师建议的核心任务。如果任务是核心任务,则可以预测核心任务需要的系统资源及运行时间;否则,任务需要的系统资源及运行时间未知,将任务的运行优先级设为最低;

所述核心任务需要的系统资源以及运行时间的预测,采用以下算法实现:

s31:教师试运行实验的核心任务,系统记录每个核心任务所需的系统资源及运行时间;

s32:受培训者运行实验时,如果其运行的核心任务j能匹配教师建议的核心任务,则任务j在第i次运行需要的资源和运行时间分别为rj(i-1)和tj(i-1)。如果任务j在第i次成功运行且云平台检测到任务j所需系统资源为rji、运行时间为tji,则将任务j的预测资源需求量及运行时间分别更新为:

rj(i)=arj(i-1)+(1-a)rji

tj(i)=btj(i-1)+(1-b)tji

其中rj(i)和tj(i)分别表示核心任务j在第i次运行后的预测资源需求量与运行时间,rj(0)和tj(0)分别表示系统仅仅依据教师运行核心任务的历史信息预测任务j需要的系统资源以及运行时间;a和b均为取值在(0,1)区间的可预设的常量。如果任务j未能匹配教师建议的核心任务,则其运行需要的资源与运行时间未知,运行优先级为最低。

4)根据用户提交的任务代码、数据源、任务名称、任务运行参数等参数在数据库中添加相应的任务实例;

5)系统根据调度方法将任务添加到任务队列中;

6)系统根据调度方法从任务队列中获取运行优先级最高的任务;

在调度任务时,将依据任务的资源需求量、云平台的总体资源、用户当前使用的资源以及用户最大可用资源,按照系统设定的调度方法安排任务运行。在具体的实施过程中,任务调度模块通过任务控制器对任务进行控制。所述任务控制器有以下作用:

(1)分配任务的优先级;

(2)根据核心任务列表预测任务的资源需求量及运行时间;

(3)根据系统设定的调度方法维护特定的任务队列;

(4)从任务队列中获取任务,根据系统使用的调度方法安排任务运行。

在具体的实施过程中,对于不同的调度方法,任务控制器从任务队列中获取任务的规则以及任务控制器添加到任务队列的元素不同。对于每个实验,受培训者可通过系统设定以下任一种调度方法,以完成调度任务过程:

a)先到先服务调度算法:任务先进先出,在满足任务资源需求的情况下,先提交的任务先运行;添加到任务队列的任务元组包含任务实例id、任务资源需求量;

b)高优先级优先调度算法:在满足任务资源需求的情况下,优先级高的任务先运行;高优先级任务会被任务控制器优先获取,添加到任务队列的任务元组包含任务实例id、任务资源需求量、任务优先级;

任务的运行优先级由其用户u已提交但未运行的任务数mu、任务所需资源及运行时间决定。本实施例将大数据任务的优先级设置成k级别,一个任务产生后,系统会依据其用户u已提交但未运行的任务数mu、任务所需资源及运行时间设置优先级。任务j的运行优先级为:

其中mu<k,as<k;s0、t0、as、k均为可预设的常量,s0、t0分别表示任务的标准资源需求得分和标准运行时间;sj、tj分别表示任务j的资源需求得分和运行时间。任务的优先级数值越大,其优先级越低,0为最高优先级。

c)最快完成优先调度算法:在满足任务资源需求的情况下,根据任务预测运行时间,能够最快完成的任务优先运行;预期运行时间最短的任务会被任务控制器优先获取,添加到任务队列的任务元组包含任务实例id、任务资源需求量、任务预期运行时间;

d)最低资源需求得分优先调度算法:资源需求得分最少的会被任务控制器优先获取,添加到任务队列的任务元组包含任务实例id、任务资源需求量、资源需求得分;任务j的资源需求得分为:

sj=k1cj+k2mj+k3ij+k4dj

其中cj表示任务j需要的计算能力;mj表示任务j需要的内存;ij表示任务j需要的中间结果存储空间;dj表示任务j需要的磁盘空间;k1、k2、k3、k4的取值保证k1cj、k2mj、k3ij、k4dj的值均在0-1之间。在各分项资源均满足的任务中,选取得分最少的任务先运行;

e)资源需求得分与运行时间积最小优先调度算法:在各分项资源均满足的任务中,选取任务资源需求得分与运行时间积最小的任务先运行。资源需求得分与运行时间积最小的任务会被任务控制器优先获取,添加到任务队列的任务元组包含任务实例id、任务资源需求量、资源需求得分与运行时间积。如果系统没有设定调度算法,缺省调度算法为e)。

7)当云平台的资源满足任务的资源需求时,进入下一步骤;否则,任务控制器将任务重新添加到任务队列中;

8)当按任务的资源需求分配资源后,如果用户当前使用的资源没有超过用户最大可用资源时,系统将任务分发到相应受培训者的大数据集群(虚拟机集群)中;否则,任务控制器将任务重新添加到任务队列中。

在具体的实施过程中,当任务成功运行后,系统需要更新对应核心任务的预测资源需求量及运行时间。

如图4所示,大数据实验云平台资源需求高峰很高,资源需求大部分时候很低,运行大数据任务的时间比较集中;而普通云平台资源需求不高。对于资源有限的大数据实验云平台,大批量受培训者运行大数据任务的时候云平台负载很高。通过使用本发明的调度方法,资源有限的大数据实验云平台可以保持正常的负载,而且能够更快地完成受培训者提交的任务。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1