本发明涉及计算机技术领域,尤其是涉及一种分布式批量作业分配方法及装置。
背景技术:
现有银行个人客户权益系统,批量框架为分布式多节点的批处理调度方法,主节点进行任务分发,每个子节点并行作业。然而当有多个作业同时等待被处理时,子节点选取作业的方式是随机选择一个处理。然而不同节点性能优势和作业的优先级、资源消耗侧重点是有差异的。随机的方式并不能高效的使用节点资源。
技术实现要素:
本发明提供了一种分布式批量作业分配方法及装置,可以通过为子节点选择更合适的作业,提高批量作业的分配效率。
第一方面,本发明实施例提供了一种分布式批量作业分配方法,该方法包括:获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据;以每个所述第二资源偏好数据为聚类中心,对所述第一资源偏好数据进行k均值聚类处理,得到多个聚类结果;按照所述待分配作业的个数和所述依赖关系数据确定每个待分配作业的优先级信息;计算空闲作业节点与所述聚类结果的相似度值,根据所述相似度值确定目标聚类结果;根据所述优先级信息在所述目标聚类结果中为所述空闲作业节点分配作业。
第二方面,本发明实施例还提供一种分布式批量作业分配装置,该装置包括:获取模块,用于获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据;聚类模块,用于以每个所述第二资源偏好数据为聚类中心,对所述第一资源偏好数据进行k均值聚类处理,得到多个聚类结果;权重模块,用于按照所述待分配作业的个数和所述依赖关系数据确定每个待分配作业的优先级信息;计算模块,用于计算空闲作业节点与所述聚类结果的相似度值,根据所述相似度值确定目标聚类结果;分配模块,用于根据所述优先级信息在所述目标聚类结果中为所述空闲作业节点分配作业。
第三方面,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述分布式批量作业分配方法。
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述分布式批量作业分配方法的计算机程序。
本发明实施例带来了以下有益效果:本发明实施例提供了一种分布式批量作业分配方案,该方案首先获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据,之后,以每个第二资源偏好数据为聚类中心,对第一资源偏好数据进行k均值聚类处理,得到多个聚类结果,按照待分配作业的个数和依赖关系数据确定每个待分配作业的优先级信息,计算空闲作业节点与聚类结果的相似度值,根据相似度值确定目标聚类结果,最后根据优先级信息在目标聚类结果中为空闲作业节点分配作业。本发明实施例对待分配作业先进行聚类,然后再针对每个空闲作业节点进行聚类内的搜索,能够更快速的找到适合的作业进行分配。从而实现更高效的分布式批量作业分配。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的分布式批量作业分配方法流程图;
图2为本发明实施例提供的优先权信息确定步骤示意图;
图3为本发明实施例提供的分布式批量作业分配方法实施步骤示意图;
图4为本发明实施例提供的一种分布式批量作业分配装置结构框图;
图5为本发明实施例提供的另一种分布式批量作业分配装置结构框图;
图6为本发明实施例提供的计算机设备结构框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前批量可执行作业的分配方式为随机分配,现有分布式作业分配方案,未考虑作业和节点机器的差异性。没有充分利用资源。资源瓶颈时也无法针对性的扩容。
基于此,本发明实施例提供的一种分布式批量作业分配方法及装置,该方法为每个批量节点选择更适合的作业,能够整体提高批量作业的执行效率。也可以更准确了解当前资源瓶颈,针对性扩容。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种分布式批量作业分配方法进行详细介绍。
为了便于理解,首先对涉及的技术术语进行解释。
余弦相似性:通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。公式为:
k-平均算法(k-meansclustering):源于信号处理中的一种向量量化方法,现在则更多地作为一种聚类分析方法流行于数据挖掘领域。k-平均聚类的目的是:把n个点(可以是样本的一次观察或一个实例)划分到k个聚类中,使得每个点都属于离他最近的均值(此即聚类中心)对应的聚类,以之作为聚类的标准。
布谷鸟搜索(cuckoosearch,cs):通过模拟某些种属布谷鸟的寄生育雏(broodparasitism),来有效地求解最优化问题的算法。同时,cs也采用相关的levy飞行搜索机制。布谷鸟搜索(cs)使用蛋巢代表解。最简单情况是,每巢有一个蛋,布谷鸟的蛋代表了一种新的解。其目的是使用新的和潜在的更好的解,以取代不那么好的解。该算法基于三个理想化的规则:每个布谷鸟下一个蛋,堆放在一个随机选择的巢中;最好的高品质蛋巢将转到下一代;巢的数量是固定的,布谷鸟的蛋被发现的概率为pa。
本发明实施例提供了一种分布式批量作业分配方法,参见图1所示的一种分布式批量作业分配方法流程图,该方法包括以下步骤:
步骤s102,获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据。
在本发明实施例中,第一资源偏好数据用于描述待分配作业对资源的偏好情况,第二资源偏好数据用于描述作业节点对资源的偏好情况,待分配作业间的依赖关系数据用于描述待分配作业的执行顺序信息。
步骤s104,以每个第二资源偏好数据为聚类中心,对第一资源偏好数据进行k均值聚类处理,得到多个聚类结果。
在本发明实施例中,k均值聚类处理是指利用k-平均算法进行计算。以第二资源偏好数据为聚类中心,k的取值为作业节点的个数,即得到k个聚类结果。
步骤s106,按照待分配作业的个数和依赖关系数据确定每个待分配作业的优先级信息。
在本发明实施例中,按照待分配作业的个数和依赖关系数据确定每个待分配作业的权重数据,将该权重数据作为优先级信息。
步骤s108,计算空闲作业节点与聚类结果的相似度值,根据相似度值确定目标聚类结果。
在本发明实施例中,空闲作业节点是即将被分配待分配作业的节点。通过计算空闲作业节点与聚类结果中聚类中心的相似度值,进而基于相似度值选取与空闲节点相似度最高的聚类结果作为目标聚类结果,从而实现作业节点与待分配作业按照资源偏好情况进行匹配,同时也便于进行针对性的扩容。
需要说明的是,如果与空闲节点相似度最高的聚类结果中,无可执行作业则继续找第二相近的聚类结果,以此类推。
步骤s110,根据优先级信息在目标聚类结果中为空闲作业节点分配作业。
在本发明实施例中,根据优先级信息在目标聚类结果中筛选待分配作业分配给空闲作业节点,从而减少因作业顺序问题导致的作业分配失败的情况。
本发明实施例提供了一种分布式批量作业分配方案,该方案首先获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据,之后,以每个第二资源偏好数据为聚类中心,对第一资源偏好数据进行k均值聚类处理,得到多个聚类结果,按照待分配作业的个数和依赖关系数据确定每个待分配作业的优先级信息,计算空闲作业节点与聚类结果的相似度值,根据相似度值确定目标聚类结果,最后根据优先级信息在目标聚类结果中为空闲作业节点分配作业。本发明实施例对待分配作业先进行聚类,然后再针对每个空闲作业节点进行聚类内的搜索,能够更快速的找到适合的作业进行分配。从而实现更高效的分布式批量作业分配。
为了提升数据处理效率,获取待分配作业的第一资源偏好数据和多个作业节点的第二资源偏好数据之前,还可以执行如下步骤:
获取待分配作业的预估资源消耗数据和多个作业节点的资源处理能力数据;根据预估资源消耗数据生成第一资源偏好特征向量,并将第一资源偏好向量作为第一资源偏好数据;根据资源处理能力数据生成第二资源偏好特征向量,并将第二资源偏好向量作为第二资源偏好数据。
在本发明实施例中,预估资源消耗数据可以包括cpu(centralprocessingunit,中央处理器)消耗、io(input/output)消耗等,资源处理能力数据可以包括节点的算力、吞吐量等。根据具体批量情况,预估出作业和批量节点的特征向量,得到第一资源偏好数据以及第二资源偏好数据,预先对数据进行分析处理,为作业分配作准备,提升作业分配的处理效率。
为了得到更准确的优先级信息,按照待分配作业的个数和依赖关系数据确定每个待分配作业的优先级信息,可以按照如下步骤执行:
按照待分配作业的个数确定每个待分配作业的初始权重;根据初始权重和依赖关系数据确定每个待分配作业的优先级信息。
按照如下公式根据初始权重和依赖关系数据确定每个待分配作业的优先级信息:
在本发明实施例中,批量作业中不少作业是有依赖关系的,给定所有待分配作业初始优先级信息为
为了得到更适合的作业,根据优先级信息在目标聚类结果中为空闲作业节点分配作业,可以按照如下步骤执行:
根据优先级信息利用布谷鸟搜索算法在目标聚类结果中确定目标待分配作业;将目标待分配作业中无依赖作业或依赖作业已完成的待分配作业分配给空闲作业节点。
在本发明实施例中,在多个聚类结果中,筛选出目标聚类结果之后,根据优先级信息,利用布谷鸟搜索算法筛选出多个目标待分配作业,再从多个目标待分配作业中为空闲作业节点优选作业进行分配。
参见图3所示的分布式批量作业分配方法实施步骤示意图,下面以一个具体实施例对该方法的实施过程进行说明。
1.数据处理。
对所有作业预估cpu消耗、io消耗等得到他们资源偏好的特征向量,对所有节点也预估他们的算力、吞吐量等得出资源配置的特征向量。
2.作业聚类。
使用k-means聚类算法,以节点数目k为聚成簇的数目,以这些节点向量作为初始聚类中心。使用目标函数
3.优先级加权。
对于批量作业中不少作业是有依赖关系的,给定所有作业初始权重为
4.为空闲节点选择作业执行。
对于空闲下来的节点,用聚类中心和节点计算余弦相似性,选取最近的聚类,若此聚类中无可执行作业则继续找第二相近的聚类,以此类推。聚类选定后,用布谷鸟搜索算法在聚类里可执行的作业中选出最优解即下一个执行的作业。目标函数为:
算法步骤为:
1.在该集群内随机选择几个(如5个)作业点(鸟巢);
2.计算目标函数对当前鸟巢排序,根据发现概率pa保留一部分优质的鸟巢;
3.对这一部分优质的鸟巢,利用levy飞行选择新的鸟巢位置代替较差的鸟巢(即上文的更新公式);
4.对新的鸟巢计算目标函数,重新排序;
5.迭代次数加一,达到终止条件输出当前最优鸟巢,否则从第2步骤开始新迭代。
最后,该空闲节点从最优作业选择无前置依赖或前置依赖都已完成的作业进行执行。
本发明提供了一种分布式批量作业分配方法及装置,该方法首先进行特征提取,根据具体批量情况,预估出作业的资源偏好的特征向量和批量节点的资源配置的特征向量,之后生成聚类,由特征向量进行k-means聚类处理,达到资源偏好聚类效果,之后确定权重信息,配置优先级,在聚类的基础上为作业加上优先级分量,最后,对当前空闲节点选择适合的作业,从之前的聚类中选择出适合的聚类,然后再在聚类里搜索出适合的作业,从而实现综合考虑资源偏好和作业优先级后选择合适的作业分配给空闲的节点。该方案利用k-mean聚类算法,对所有作业的特征向量进行聚类,然后根据作业依赖关系做优先级的加权,当某节点闲置的时候对相近的聚类进行布谷鸟搜索,选出最适合该节点的作业进行执行,进而提升分布式批量节点的分配效率。
本发明实施例中还提供了一种分布式批量作业分配装置,如下面的实施例所述。由于该装置解决问题的原理与分布式批量作业分配方法相似,因此该装置的实施可以参见分布式批量作业分配方法的实施,重复之处不再赘述。参见图4所示的一种分布式批量作业分配装置结构框图,该装置包括:
获取模块71,用于获取待分配作业的第一资源偏好数据、多个作业节点的第二资源偏好数据和待分配作业间的依赖关系数据;聚类模块72,用于以每个第二资源偏好数据为聚类中心,对第一资源偏好数据进行k均值聚类处理,得到多个聚类结果;权重模块73,用于按照待分配作业的个数和依赖关系数据确定每个待分配作业的优先级信息;计算模块74,用于计算空闲作业节点与聚类结果的相似度值,根据相似度值确定目标聚类结果;分配模块75,用于根据优先级信息在目标聚类结果中为空闲作业节点分配作业。
在一个实施例中,参见图5所示的另一种分布式批量作业分配装置结构框图,该装置处理模块76,用于:获取待分配作业的预估资源消耗数据和多个作业节点的资源处理能力数据;根据预估资源消耗数据生成第一资源偏好特征向量,并将第一资源偏好向量作为第一资源偏好数据;根据资源处理能力数据生成第二资源偏好特征向量,并将第二资源偏好向量作为第二资源偏好数据。
在一个实施例中,权重模块,具体用于:按照待分配作业的个数确定每个待分配作业的初始权重;根据初始权重和依赖关系数据确定每个待分配作业的优先级信息。
在一个实施例中,权重模块,按照如下公式根据初始权重和待分配作业间的依赖关系数据确定每个待分配作业的优先级信息:
在一个实施例中,分配模块,具体用于:根据优先级信息利用布谷鸟搜索算法在目标聚类结果中确定目标待分配作业;将目标待分配作业中无依赖作业或依赖作业已完成的待分配作业分配给空闲作业节点。
本发明实施例还提供一种计算机设备,参见图6所示的计算机设备结构示意框图,该计算机设备包括存储器81、处理器82及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一种分布式批量作业分配方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述任一种分布式批量作业分配方法的计算机程序。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。