一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于大数据系统的任务调度方法和系统与流程

2022-05-31 23:35:41 来源:中国专利 TAG:

一种基于大数据系统的任务调度方法和系统
【技术领域】
1.本发明属于大数据领域,尤其涉及一种基于大数据系统的任务调度方法和系统。


背景技术:

2.随着科技进步,信息发展已步入大数据时代,而数据医疗是大数据的一个重要领域,随着医疗信息技术的快速发展,国内越来越多的医疗机构正加速实施基于信息化平台的整体建设,以提高医院的服务水平与核心竞争力。随着新医改启动,大数据应用爆发。当快速增长的多元化医院数据遇到了大数据技术,医疗大数据应用快速受到医疗机构的欢迎。大医院基本上都有上百个系统在线运行,那么当前在医院信息化中心在接受大数据的冲击时,需要面临的首要问题是如何进行信息的集成,以及如何将医院大数据特点和大数据平台或者大数据的系统相结合,从而高效的利用大数据优势和大数据效率;实际上,对于医疗信息来说,信息之间有很强的关联性,这是由于患者和患者之间,患者自身不同时期之间,医生之间,他们提供的信息都是有一定的关联性的,但是这些信息的关联可能无法通过语义理解的方式来完全掌握和发现,如何从更高的层级,例如:操作系统层面,任务调度层面,也有可能未来的硬件平台搭建层面,来利用这种大数据信息的内在关联性,使得大数据的整体运作效率提高,是一个新的研究方向。
3.传统的任务调度系统一般只支持整体任务按照有向无环图顺序执行,一个任务节点是否会被触发执行的条件是它的所有上游节点全部都被触发执行,而且执行结果均为成功。任务的执行也都是按照顺序执行,没有充分利用大数据包含的数据信息以及现在的大数据分析能力,挖掘得到有价值的新信息,也就是说,相关技术中任务执行逻辑设置不够灵活。而大数据系统能够对预置信息进行数据收集和分析,预置信息包括基础应用系统的数据。大数据系统主要负责对整个服务平台是数据进行收集和分析,主要体现在对基础应用系统的各类数据进行获取和综合分析。那么,如何对现有的传统的任务调度系统进行优化,如何利用大数据节点和任务数量多灵活度高的特点,提高其对于开发人员的易用性及对于自身的任务执行效率,可谓是当务之急。
4.本发明基于集合和集合的匹配进行任务调度,提高了任务调度的灵活性,使得在保持任务调度能够达到实时性允许情况下的局部最优;提出了任务特征矩阵以及最差任务矩阵和最优任务矩阵,基于这样的表示,将计算节点和任务之间的匹配转换为任务和任务的匹配,在计算量有限的情况下使得复杂的特征描述成为可能,大大的提高了任务调度效率;(2)基于状态变量传递计算节点的可用状态,通过加和减的方式修改状态变量,使得调度节点能够准确及时的在时机到达时构建可用计算节点集合;进一步的通过状态节点的差异化放置为调度各方主体提供差异化的信息传递。


技术实现要素:

5.为了解决现有技术中的上述问题,本发明提出了一种基于大数据系统的任务调度方法和系统,所述系统包含:
6.一种基于大数据系统的任务调度方法,所述方法包含:
7.步骤s1:基于任务创建请求创建任务;
8.步骤s2:计算任务特征矩阵,并将任务并放入任务池;
9.步骤s3:获取可用计算节点集合;
10.步骤s4:基于可用计算节点集合从任务池中选择目标任务集合;
11.步骤s5:将目标任务集合中的任务指派给所述可用计算节点集合。
12.进一步的,将任务特征和任务关联并放入任务池。
13.进一步的,所述任务为数据读取任务、数据库读取任务、数据计算任务、数据分析任务、数据库数据更新任务等。
14.进一步的,所述任务创建请求来自于一个或多个终端设备。
15.进一步的,所述任务为大数据平台任务。
16.一种基于大数据系统的任务调度系统,包括:终端设备、计算节点、调度节点;
17.所述终端设备用于向调度节点发起任务创建请求;
18.计算节点用于接受任务调度并执行任务;
19.调度节点包括:
20.创建模块,用于基于任务创建请求创建任务;
21.任务特征矩阵计算模块,用于计算任务特征矩阵,并将任务并放入任务池;
22.可用计算节点确定模块,用于获取可用计算节点集合;
23.目标任务集合选择模块,用于基于可用计算节点集合从任务池中选择目标任务集合;
24.指派模块,用于将目标任务集合中的任务指派给所述可用计算节点集合。
25.一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述的基于大数据系统的任务调度方法。
26.一种执行设备,包括处理器,所述处理器和存储器耦合,所述存储器存储有程序指令,当所述存储器存储的程序指令被所述处理器执行时实现所述的基于大数据系统的任务调度方法。
27.一种计算机可读存储介质,包括程序,当其在计算机上运行时,使得计算机执行所述的基于大数据系统的任务调度方法。
28.一种云服务器,所述云服务器被配置为执行所述的基于大数据系统的任务调度方法。
29.本发明的有益效果包括:
30.(1)基于集合和集合的匹配进行任务调度,提高了任务调度的灵活性,使得在保持任务调度能够达到实时性允许情况下的局部最优;同时通过最差任务矩阵和最优任务矩阵,将计算节点和任务之间的匹配转换为任务和任务的匹配,在计算量有限的情况下使得复杂的特征描述成为可能,大大的提高了任务调度效率;(2)基于状态变量传递计算节点的可用状态,通过加和减的方式修改状态变量,使得调度节点能够准确及时的在时机到达时构建可用计算节点集合;进一步的通过状态节点的差异化放置为调度各方主体提供差异化的信息传递。
【附图说明】
31.此处所说明的附图是用来提供对本发明的进一步理解,构成本技术的一部分,但并不构成对本发明的不当限定,在附图中:
32.图1为本发明提供的基于大数据系统的任务调度方法示意图。
【具体实施方式】
33.下面将结合附图以及具体实施例来详细说明本发明,其中的示意性实施例以及说明仅用来解释本发明,但并不作为对本发明的限定通过
34.大数据系统能够进行数据收集和分析,主要体现在对基础应用系统的各类数据进行获取和综合分析,而对于这些数据的获取、分析和综合都需要创建任务,并合理调度。对于大数据系统中多样化的任务和状态随时变化的计算节点,如何进行任务调度是至关重要的;计算节点位于相同和不同的硬件设备中,采用总线、内部线路或者网络连相互连接;调度节点用于基于终端设备提交的任务创建请求创建任务,并将任务调度到合适的计算节点中执行;
35.本发明提出一种基于大数据系统的任务调度方法,所述方法包括如下步骤:
36.步骤s1:基于任务创建请求创建任务;
37.优选的:所述任务为数据读取任务、数据库读取任务、数据计算任务、数据分析任务、数据库数据更新任务等;
38.优选的:所述任务为大数据平台任务;
39.优选的:所述任务创建请求来自于一个或多个终端设备;
40.优选的:调度节点基于所述任务创建请求创建任务;例如:所述调度节点为任务调度服务器;
41.步骤s2:计算任务特征,将任务特征和任务关联并放入任务池;
42.所述计算任务特征;具体为:获取各种类型任务特征,每种类型的任务特征包括一个或者多个子特征,将子特征进行归一化后,将每种类型的特征用向量表示;最终将多个类型对应的多个向量组合起来构成矩阵,并将任务特征用任务特征矩阵表示;当子特征数量不同,对应向量长度不同的部分用0补齐;
43.优选的:任务特征包括轮廓特征、数据特征和执行特征;将任务轮廓特征、数据特征和执行特征分别转换为任务轮廓特征向量、数据特征向量和执行特征向量;对于每种类型的特征,将其中的数值型子特征进行归一化后作为向量中的一个元素,非数值型子特征转换为数值型特征后进行归一化后作为向量中的一个元素;例如:概要性特征包括例如:任务类型、所有者、实时性、临时变量个数、和/或任务执行时间等;任务类型typea转换为数值1,typer b转换为数值2,以此类推;当任务类型为10种类型时,通过归一化后任务类型子特征对应的向量元素是0.1;通过归一化,所有向量中的元素均属于[0,1];
[0044]
优选的:任务执行块来获取任务的轮廓特征;
[0045]
数据特征用于表示任务在执行过程中所涉及的数据的特征,例如:静态变量个数、临时变量个数、数据文件长度、和/或任务的数据空间尺寸等;
[0046]
执行特征用于表示任务在执行过程中的执行特性;例如:任务执行图的特征、循环的个数、循环变量的变化长度、任务执行路径长度、和/或函数个数等;
[0047]
所述任务池用于管理待调度任务,可以采用队列的方式管理所述任务池,任务池中的任务按照优先级排序;这里的优先级是调度优先级,可以用各种现有计算方式计算;
[0048]
优选的:每个任务设置最晚调度时间,实时任务的最晚调度时间和其实时特性相关,而任务非实时任务而未设置最晚调度时间时,设置默认长度计时器设备用于计算最晚调度时间;这样每个任务都不会因为基于集合的局部优化而导致任务永不被调度;
[0049]
步骤s3:获取可用计算节点集合;具体的:通过状态变量值传递可用信息;当计算节点可用时,所述计算节点修改其对应的状态变量,调度服务器读取所述状态变量从而获取所述计算节点的可用情况,并基于所述可用情况构建当前可用计算节点集合;
[0050]
当计算节点和调度节点通过总线等内部线路通信时,往往可以获取到确切而准确的信息;但是在大数据系统中,计算节点和调度节点之间的通信并没有这样的准确和确切,本发明采用基于状态变量值来传递可用信息,那么即使在很少的情况下计算节点的信息并未被正确的读取,也只是使得计算节点浪费了一个调度时机,而由于计算节点和调度节点之间可以独立读写状态变量,会带来很大的灵活性;在此基础上,本发明通过状态变量的方式来降低这种情况下的通信开销,取消繁复的握手操作,基于状态变量传递计算节点的可用状态,使得调度节点能够准确及时的在时机到达时构建可用计算节点集合;
[0051]
优选的:设置状态变量为整型变量;通过加和减的方式修改状态变量以表达不同的可用信息;不同的计算节点通过加或减固定数值修改状态变量以表达自身的可用信息变化情况;不同的计算节点对应的固定数值是不同的;例如:对于32bit的整型变量能够标识32个计算节点的变化情况,第一计算节点对应的固定数值为1,第二计算节点对应的固定数值为10,依次类推,那么第一计算节点通过加或减1的方式来修改其状态;若当前状态变量是00000111,而1用于标识可用,那么状态变量标识第一、第二、第三计算节点是可用的,而其他计算节点为非可用的;通过这样的方式,使得最小化状态传递开销,那么随着需要进行调度管理的计算节点个数的增加,状态变量个数的增加也是非常的有限的;
[0052]
相应的,通过状态节点差异化放置,能够为不同计算节点和任务调度提供差异化支持;
[0053]
优选的:状态变量为一个或者多个;当状态变量为多个时,将状态变量放置于相同节点的不同存储位置或不同节点中;
[0054]
所述将状态变量放置于不同节点中,具体为:一个状态变量对应一个或多个计算节点的可用状态表示;第一计算节点集合对应第一状态变量;第二计算节点集合对应第二状态变量;第一计算节点集合和第二计算节点集合中有一个或者多个计算节点,所述计算节点是任务调度的目标;第一状态变量放置在第一节点中,第二状态变量放置在第二节点中;第一节点和第二节点为不同的物理节点;依次类推,针对更多的差异化需求,也就是说针对更多的计算节点集合,对应的设置更多的状态变量,并将状态变量设置在相同或不同节点;这里的节点为大数据系统节点,包括计算节点、调度节点、安全节点、计算核、处理器等各种类型的计算机实体;
[0055]
一个更具体的方式为:将状态变量分别放置于调度节点或不同的节点中;节点可以是提供更高安全级别或者不同安全级别的节点,或者针对重要的计算节点,直接将其对应的状态变量放置在该重要的计算节点上,让调度节点在获得特定区域的访问权限后,从该重要的计算节点上主动进行信息读取,从而减少该重要计算节点其他工作及其工作类
型;其中:特定区域包括所述状态变量所在的区域;
[0056]
所述将状态变量放在相同节点的不同存储位置,具体为:一个状态变量对应一个或多个计算节点的状态表示;将第一计算节点集合对应的第一状态变量放置在第一节点的第一位置,将第二计算节点集合对应的第二状态变量放置在第一节点的第二位置;第一位置和第二位置为第一节点的不同存储位置;所述不同的存储位置位于不同的存储单元上;所述不同的存储单元包括:缓存、高速缓存、寄存器、内存、内存的不同bank、加密存储单元、非加密存储单元和/或扩展存储单元等;
[0057]
一个更具体的方式为:将第一状态变量和第二状态变量均设置于调度节点上,调度所针对的计算节点是相同计算设备上的不同的计算单元,
[0058]
优选的:所述不同的计算单元是相同计算设备上的不同处理器、不同计算核;所述不同的计算单元基于总线连接;将不同计算核对应的状态变量放置于高速缓存中,而将不同处理器对应的状态变量放置于内存上;
[0059]
步骤s4:基于可用计算节点集合从任务池中选择目标任务集合;具体为:计算可用计算节点集合的节点集合特征;从任务集合中选择目标任务以构成目标任务集合,并使得目标任务集合的任务集合特征和节点集合特征匹配程度最高;
[0060]
所述步骤s4具体包括如下步骤:
[0061]
步骤s41:对于可用计算节点集合中的每个计算节点,获取其对应的最优任务矩阵和最差任务矩阵;
[0062]
一种具体的获取方式是:在计算节点上做各种任务执行,并记录其执行效率,确定执行效率最高和最低的任务,提取所述执行效率最高和最低的任务对应的特征矩阵以得到最优任务矩阵和最差任务矩阵;将计算节点标识和其对应的最优任务矩阵和最差任务矩阵关联存储;
[0063]
这里的执行效率可以是执行时间、资源利率等多种指标中的一个或者多个的组合;
[0064]
计算节点的最优任务矩阵是对于一计算节点来说执行效率最高任务对应的任务特征矩阵;计算节点的最差任务矩阵是对于一计算节点来说执行效率最低任务对应的任务特征矩阵;那么因为每个计算节点配置是相同或者不同的,那么对于每个计算节点来说,其对应的最优任务矩阵和最差任务矩阵是相同或者不同的;
[0065]
现有技术往往是先描述计算节点的特征,描述计算节点的存储、计算等各方面的特性,并通过计算节点特征和任务特诊特征之间的匹配来确定匹配程度,但是,实际上随着可以用于描述的特征数量的增加,节点特征和任务特征之间匹配程度的描述是很难的,也有借助于神经网络等人工智能手段来进行匹配程度的衡量的,但是随着描述特征的增加,这样的计算量会爆炸性增长,本发明通过最差任务矩阵和最优任务矩阵,将计算节点和任务之间的匹配转换为任务和任务的匹配,在计算量有限的情况下使得复杂的特征描述成为可能;
[0066]
步骤s42:从任务集合中选择目标任务以构成目标任务集合;具体为:在首次进入该步骤时,按照优先级从高到低的顺序从任务池中选择目标数量的任务作为目标任务,其中:所述目标数量等于可用计算节点集合中节点的数量;再次进入该步骤时,从任务池中重新选择第一数量的目标任务放入目标任务集合,并从目标任务集合中换出第一数量的目标
任务放回任务池中;
[0067]
优选的:按照优先级从高到低的顺序从任务池中选择第一数量的目标任务放入目标任务集合,并从目标任务集合中换出第一数量的目标任务放入任务池中;也就是说,每次更换第一数量的任务;
[0068]
优选的:所述第一数量等于1;
[0069]
所述从目标任务集合中换出第一数量的目标任务;具体为:从目标任务集合中选择优先级最低的第一数量的目标任务换出;
[0070]
优选的:再次进入该步骤时,先确定是否有可以换出的目标任务,如果是则继续执行,否则,不再更换目标任务集合,进入步骤s45;当目标任务集合中的每个任务的最晚调度时间均达到时,此时不再存在可以换出的任务;同样的,在换入节点时,最晚调度时间已经到达的任务因为优先级较高,必然会有限选入或者换入目标任务集合中;
[0071]
优选的:如果可以换出的目标任务数量小于第一数量,则重新设置所述第一数量等于可以换出的目标任务数量,并在下次进入该步骤时重置第一数量值;
[0072]
所述从任务池中重新选择第一数量的目标任务放入目标任务集合,并从目标任务集合中换出第一数量的目标任务放回任务池中,具体为:在任务池中没有还未被选择过的任务中,根据优先级的高低选择第一数量的任务作为目标任务放入目标任务集合中以进行后续的匹配程度计算;同时需要换出也就是从集合中删除第一数量的目标任务;一种换出选择的方式是从目标任务集合中选择优先级最低的第一数量的目标任务换出,换出后的目标任务被放入调度池中不再是目标任务;在下一次调度时机到来时,进行目标任务选择时,可以重新被选择;
[0073]
步骤s43:计算目标任务集合和可用计算节点集合的特征匹配程度;当特征匹配程度高于预设匹配程度时,进入步骤s45;否则,进入步骤s42;
[0074]
所述计算目标任务集合的和可用计算节点集合的特征匹配程度;具体为包括如下步骤:
[0075]
步骤s43a1:构建当前调度方式sch_cnt,进入步骤s43a2;
[0076]
所述构建当前调度方式sch_cnt,具体为:对于目标任务集合中的每个任务,按照任务优先权从大到小的顺序,依次计算该任务的任务特征矩阵和每个节点的最优特征矩阵之间的距离,将任务调度给距离最小的最优特征矩阵对应的计算节点;并将该调度结果作为当前调度方式sch_cnt;
[0077]
步骤s43a2:计算当前调度方式下的特征匹配程度mh;
[0078][0079]
其中:mhi是当前调度方式下第i个计算节点的特征匹配程度;mh是当前调度方式下目标任务集合的和可用计算节点集合的特征匹配程度;n是目标任务数量;mxgi是第i计算节点的最优特征矩阵;mxbi是第i计算节点的最差特征矩阵;tk是当前调度方式下任务k的任务特征矩阵;||||表示求矩阵的模;此时,第k个任务被分配在第i个计算节点上;
[0080]
步骤s43a3:输出当前调度方式及其对应的特征匹配程度;
[0081]
通过上面集合内部局部寻优的过程,在保障基于优先级调度的基础上优化了调度
策略;
[0082]
步骤s45:将所述目标任务集合作为所选择的目标任务集合并输出;具体的:在上述步骤执行过程中记录所选择的目标任务集合及其对应的特征匹配程度,并将特征匹配程度最高的目标任务集合作为所选择的目标任务集合并输出;
[0083]
优选的:将目标任务集合及其对应的调度方式关联输出;
[0084]
上面的调度方法是将一个任务调度到一个计算节点上,当然,在任务尺寸较大时,将独立的一个任务分配到一个计算单元会造成该计算单元无法响应且任务也无法及时完成的,优选的方式是,在任务创建前,提前对任务创建需求做评估,针对同一个任务创建需求创建多个任务,使得这些任务能够分开的在不同的计算单元执行;
[0085]
步骤s5:将目标任务集合中的任务指派给可用计算节点集合;具体为:按照当前调度方式将目标任务集合中的任务指派给可用计算节点集合;
[0086]
当然在此时目标任务集合和可用计算节点已经确定的情况下,可以采用多种可选的调度方式,例如:计算每个任务和每个节点之间的契合程度,并根据契合程度的大小来调度和指派,当然可以参照单一指标来调度,但这是一个倒退的调度思路,因为毕竟特征矩阵已经综和考虑了各种指标;
[0087]
基于相同的发明构思,本发明提出一种基于大数据系统的任务调度系统,包括:终端设备、计算节点、调度节点;
[0088]
所述终端设备用于向调度节点发起任务创建请求;
[0089]
计算节点用于接受任务调度并执行任务;
[0090]
调度节点包括:
[0091]
创建模块,用于基于任务创建请求创建任务;
[0092]
任务特征矩阵计算模块,用于计算任务特征矩阵,并将任务并放入任务池;
[0093]
可用计算节点确定模块,用于获取可用计算节点集合;
[0094]
目标任务集合选择模块,用于基于可用计算节点集合从任务池中选择目标任务集合;
[0095]
指派模块,用于将目标任务集合中的任务指派给所述可用计算节点集合。
[0096]
优选的:所述调度节点为云服务器,所述云服务器构建于云平台之上,云服务器所依托的云计算平台的核心服务层提供的服务包括基础设施即服务(iaas,infrastructure as aservice)、平台即服务(paas,platform as a service)、软件即服务(saas,software as a service)。其中iaas提供实体或虚拟的计算、存储和网络服务,paas提供应用程序部署与管理服务,saas提供应用程序。业务终端所属企业可以租用进行信息交换处理。
[0097]
术语“计算节点”、“调度节点”、“终端设备”或“计算设备”包涵用于处理数据的所有种类的装置、设备和机器,举例包括可编程处理器、计算机、片上系统、或者上述中的多个或其组合。所述装置能够包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件,所述装置还可以包括代码,创建用于所述计算机程序的执行环境,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行环境、虚拟机或上述一个或多个的组合的代码。该装置和执行环境可以实现各种不同计算模型基础设施,诸如web服务、分布式计算、和网格计算基础设施。
[0098]
计算机程序(也被称为程序、软件、软件应用、脚本或代码)能够以编程语言的任何
形式来撰写,包括汇编或解释语言、说明或过程性语言,且其可以以任何形式部署,包括作为单机程序或者作为模块、组件、子例程、对象或适于在计算环境中使用的其他单元。计算机程序可以但不必与文件系统中的文件相对应。程序能够存储在保持其他程序或数据(例如存储在标记语言文档中的一个或多个脚本)的文件的一部分中,在专用于所述程序的单个文件中,或者在多个协同文件中(例如,存储一个或多个模块、子例程或代码部分的文件)。计算机程序可以部署为在一个计算机上或位于一个站点或跨多个站点分布且由通信网络互连的多个计算机上执行。
[0099]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0100]
本发明是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0101]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0102]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0103]
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献