数据分配方法及相关产品与流程

文档序号:17762524发布日期:2019-05-24 21:49阅读:163来源:国知局
数据分配方法及相关产品与流程
本申请涉及数据分配
技术领域
,具体涉及一种数据分配方法及相关产品。
背景技术
:随着电子技术的快速发展,计算机集群技术也得到了快速发展,计算机集群可以简单地理解为,通过服务器与多个节点建立一个集群,在数据处理过程中,将所有数据平均存放在搜索集群的各个服务节点中,降低了计算机集群数据处理效率。技术实现要素:本申请实施例提供了一种数据分配方法及相关产品,可以提升计算机集群数据处理效率。本申请实施例第一方面提供了一种数据分配方法,包括:获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息;获取第一待处理数据;依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块;将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。可选地,所述方法还包括:检测到出现q个新节点时,获取第二待处理数据,所述q为正整数;预估所述q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量;在所述第二待处理数据的数据量大于所述q个上限处理数据量的总和时,依据所述q个上限处理数据量将所述第二待处理数据划分为第一数据集和第二数据集,将所述第一数据集由所述q个新节点进行分配,将所述第二数据集由所述p个节点进行分配;在所述第二待处理数据的数据量小于或等于所述q个上限处理数据量的总和时,获取所述q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将所述第二待处理数据进行划分,得到q个数据块,将所述q个数据块分别分发给所述q个新节点相应的节点进行处理。进一步可选地,所述预估所述q个新节点中的每一新节点的上限处理数据量,包括:获取新节点j的至少一个子节点,所述新节点j为所述q个新节点中的任一新节点;确定所述至少一个子节点的数据处理上限值,得到至少一个数据处理上限值;获取所述新节点j的目标硬件资源配置信息;按照预设的硬件资源配置信息与额定上限数据处理量之间的映射关系,确定所述目标硬件资源配置信息对应的目标额定上限数据处理量;将所述目标额定上限数据处理量与所述至少一个数据处理上限值之间的差值作为所述新节点j的上限数据处理量。本申请实施例第二方面提供了一种数据分配装置,包括:第一获取单元,用于获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息;第二获取单元,用于获取第一待处理数据;划分单元,用于依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块;分发单元,用于将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。第三方面,本申请实施例提供一种服务器,包括处理器、存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。实施本申请实施例,具备如下有益效果:可以看出,通过本申请实施例所描述的数据分配方法及相关产品,获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息,获取第一待处理数据,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块,将p个数据块分别分发给p个节点中相应的节点进行处理,如此,能够确定p个节点每个上报节点的硬件资源配置信息,并依据该硬件资源配置信息将待处理数据划分为p份,并分发给相应的节点,实现了依据节点性能进行数据分配,充分发挥了每一节点的处理能力,提升了数据处理效率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a是本申请实施例提供的一种数据分配方法的实施例流程示意图;图1b是本申请实施例提供的计算机集群的演示示意图;图1c是本申请实施例提供的zookeeper的结构示意图;图2是本申请实施例提供的一种数据分配方法的另一实施例流程示意图;图3a是本申请实施例提供的一种数据分配装置的实施例结构示意图;图3b是本申请实施例提供的一种数据分配装置的另一实施例结构示意图;图3c是本申请实施例提供的一种数据分配装置的另一实施例结构示意图;图4是本申请实施例提供的一种数据分配装置的实施例结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。本申请实施例所描述的节点可以包括智能手机(如android手机、ios手机、windowsphone手机等)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mid,mobileinternetdevices)或穿戴式设备等,上述仅是举例,而非穷举,包含但不限于上述装置,当然,上述节点还可以为服务器,本申请实施例中,服务器可以为云服务器或者集群服务器。请参阅图1a,为本申请实施例提供的一种数据分配方法的实施例流程示意图。本实施例中所描述的数据分配方法,包括以下步骤:101、获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息。其中,上述硬件资源配置信息可以为以下至少一种:中央处理器cpu的核数、内存大小、负载值、是否为固态硬盘(solidstatedrives)等等在此不做限定。具体地,如图1b所示,服务器可以与p个节点之间建立通信连接,服务器可以接收p个节点上报的硬件资源配置信息,每一节点可以每隔预设时间间隔上述该节点的硬件资源配置信息,该预设时间间隔可以由用户自行设置或者系统默认。102、获取第一待处理数据。其中,上述第一待处理数据可以为以下至少一种:图像、文件、信令、视频、语音信号、光信号、文本信息等等,在此不做限定。具体实现中,第一待处理数据可以来自于终端,也可以来自于上一节点或者下一节点转发过来的数据。第一待处理数据可以为实时数据,或者,为预先存储的数据,在此不做限定。103、依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块。其中,不同的硬件资源配置信息反映了节点的不同的处理能力,本申请实施例中,本着处理能力强,则可以多处理些数据,处理能力弱,则可以少处理些数据的思想,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据快,每一硬件资源配置信息对应一个数据块,如此,充分利用了每一节点的处理能力,能够提升数据处理效率。可选地,上述步骤102,依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,可包括如下步骤:21、依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值;22、依据所述p个性能评价值确定所述p个节点中每一节点对应的分配比例值,得到p个分配比例值,所述p个分配比例值之和为1;23、依据所述p个分配比例值将所述第一待处理数据进行划分,得到所述p个数据块。其中,硬件资源配置信息在一定程度上反映了节点的性能,因此,服务器可以依据p个硬件资源配置信息对p个节点中每个节点的性能进行评价值,得到p个性能评价值,然后依据p个性能评价值确定p个节点中每个节点对应的分配比例值,得到p个分配比例值,具体地,可以先计算p个性能评价值的总和,对于任一节点,该节点的分配比例值=该节点的性能评价值/p个性能评价值的总和,以此类推,可以得到p个节点中每一节点的分配比例值,进一步地,依据p个分配比例值将第一待处理数据进行划分,得到p个数据库,如此,实现了依据性能对待处理数据进行分配,提升了整个系统的运作效率。可进一步可选地,所述硬件资源配置信息包括:中央处理器的核数、内存大小和负载值;上述步骤21,依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值,可包括如下步骤:211、按照预设的核数与第一评价值之间的映射关系,确定硬件资源配置信息i中的核数对应的目标第一评价值,所述硬件资源配置信息i为所述p个硬件配置资源信息中的任一硬件资源配置信息;212、按照预设的内存大小与第二评价值之间的映射关系,确定所述硬件资源配置信息i中的内存大小对应的目标第二评价值;213、按照预设的负载值与第三评价值之间的映射关系,确定所述硬件资源配置信息i中的负载值对应的目标第三评价值;214、获取所述第一评价值对应的第一权值、所述第二评价值对应的第二权值以及所述第三评价值对应的第三权值,所述第一权值、所述第二权值与所述第三权值之和为1;215、依据所述目标第一评价值、所述目标第二评价值、所述目标第三评价值、所述第一权值、所述第二权值和所述第三权值进行加权运算,得到所述硬件资源配置信息i对应的评价值。其中,上述第一权值、第二权值、第三权值均可以预先设置或者系统默认,上述第一权值、第二权值与第三权值之和为1。服务器中可以预先存储预设的核数与第一评价值之间的映射关、预设的内存大小与第二评价值之间的映射关系以及预设的负载值与第三评价值之间的映射关系。上述第一评价值、第二评价值、第三评价值为0~1之间的数,或者0~100之间的数。举例说明下,如下提供一种核数与第一评价值之间的映射关系:核数第一权值10.220.430.640.8>51具体实现中,以硬件资源配置信息i为例,该硬件资源配置信息i为p个硬件配置资源信息中的任一硬件资源配置信息,若硬件资源配置信息包括:中央处理器的核数、内存大小和负载值,则可以按照上述预设的核数与第一评价值之间的映射关系,确定硬件资源配置信息i中的核数对应的目标第一评价值,按照预设的内存大小与第二评价值之间的映射关系,确定硬件资源配置信息i中的内存大小对应的目标第二评价值,按照预设的负载值与第三评价值之间的映射关系,确定硬件资源配置信息i中的负载值对应的目标第三评价值,获取第一评价值对应的第一权值、第二评价值对应的第二权值以及第三评价值对应的第三权值,第一权值、第二权值与第三权值之和为1,依据目标第一评价值、目标第二评价值、目标第三评价值、第一权值、第二权值和第三权值进行加权运算,得到硬件资源配置信息i对应的评价值,即硬件资源配置信息i对应的评价值=目标第一评价值*第一权值+目标第二评价值*第二权值+目标第三评价值*第三权值,如此,可以从硬件资源配置信息的多个维度出发,对每一节点的性能进行评价,提升了节点性能评价精度。104、将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。其中,服务器在完成数据分配之后,可以将p个数据块分发给p个节点中相应的节点进行处理,如此,可以充分利用节点的性能,对数据进行差异分配,保证了性能强的节点可以适当多处理些数据,性能弱的节点可以处理相对少点数据,能够保证数据及时被处理,避免了数据积压情况,提升了数据处理效率。可选地,上述步骤104之后,还可以包括如下步骤:a1、检测到出现q个新节点时,获取第二待处理数据,所述q为正整数;a2、预估所述q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量;a3、在所述第二待处理数据的数据量大于所述q个上限处理数据量的总和时,依据所述q个上限处理数据量将所述第二待处理数据划分为第一数据集和第二数据集,将所述第一数据集由所述q个新节点进行分配,将所述第二数据集由所述p个节点进行分配;a4、在所述第二待处理数据的数据量小于或等于所述q个上限处理数据量的总和时,获取所述q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将所述第二待处理数据进行划分,得到q个数据块,将所述q个数据块分别分发给所述q个新节点相应的节点进行处理。其中,上述第二待处理数据可以为以下至少一种:图像、文件、信令、视频、语音信号、光信号、文本信息等等,在此不做限定。具体实现中,第二待处理数据可以来自于终端,也可以来自于上一节点或者下一节点转发过来的数据。第二待处理数据可以为实时数据,或者,为预先存储的数据,在此不做限定。其中,由上述可知,服务器可以与p个节点构成一个集群,当然,集群还可以添加其他节点。具体实现中,服务器可以检测集群中是否出现了新节点,若检测到出现q个新节点,则可以获取第二待处理数据,q为正整数。由于每个节点均能力有限,超过一定的数据处理量,则会出现卡顿或者死机现象,反而降低了数据处理效率。因此,本申请实施例中,可以预估q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量,上限处理数据量可以理解为最多能够处理的数据量,在第二待处理数据的数据量大于q个上限处理数据量的总和时,则说明光靠q个新节点无法处理第二待处理数据,因此,可以依据q个上限处理数据量将第二待处理数据划分为第一数据集和第二数据集,其中,第一数据集的数据量小于q个上限处理数据量的总和,进而,可以将第一数据集由q个新节点进行分配,将第二数据集由所述p个节点进行分配,具体的分配方式可以参照上述步骤101-步骤104的具体描述,在此不再赘述。此外,在第二待处理数据的数据量小于或等于q个上限处理数据量的总和时,则说明q个新节点完全有能力处理完第二待处理数据,则可以优先考虑让q个新节点处理第二待处理数据,进一步地,可以获取q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将第二待处理数据进行划分,得到q个数据块,将q个数据块分别分发给q个新节点相应的节点进行处理,具体的分配方式可以参照上述步骤101-步骤104的具体描述,在此不再赘述。如此,可以充分且快速加入新节点进行数据处理,还可以保证数据在节点之间合理分配,提升了数据处理效率。进一步可选地,上述步骤a2,预估所述q个新节点中的每一新节点的上限处理数据量,可以包括如下步骤:a21、获取新节点j的至少一个子节点,所述新节点j为所述q个新节点中的任一新节点;a22、确定所述至少一个子节点的数据处理上限值,得到至少一个数据处理上限值;a23、获取所述新节点j的目标硬件资源配置信息;a24、按照预设的硬件资源配置信息与额定上限数据处理量之间的映射关系,确定所述目标硬件资源配置信息对应的目标额定上限数据处理量;a25、将所述目标额定上限数据处理量与所述至少一个数据处理上限值之间的差值作为所述新节点j的上限数据处理量。其中,对于每一新节点而言,每一节点有可能是服务器,当然,节点也可以有一个或者多个子节点,子节点的话,则会与父节点之间会有一定的交互,因此,有可能也会占用一定的资源,因此,具体实现中,服务器可以获取新节点j的至少一个子节点,新节点j为q个新节点中的任一新节点,确定所述至少一个子节点的数据处理上限值,得到至少一个数据处理上限值,每一节点的数据处理上限值可以预先设置或者系统默认,服务器中还可以预先存储预设的硬件资源配置信息与额定上限数据处理量之间的映射关系,进而,在获取新节点j的目标硬件资源配置信息之后,可以按照预设的硬件资源配置信息与额定上限数据处理量之间的映射关系,确定目标硬件资源配置信息对应的目标额定上限数据处理量,将目标额定上限数据处理量与至少一个数据处理上限值之间的差值作为新节点j的上限数据处理量,上述额定上限数据处理量则可以理解为产品出厂之前,预先设置的最多能够处理的数据量,如此,可以在保证新节点与其子节点均能正常工作的基础上,最大限度地预估数据处理量上限,有利于充分保证系统的稳定性,提升系统处理效率。可选地,上述步骤104之后,还可以包括如下步骤:在检测到所述p个节点中任一节点的负载值超过预设阈值时,则删除该任一节点对应的节点信息,或者,向管理员发送报警信息。其中,上述预设阈值可以由用户自行设置或者系统默认。服务器可以检测p个节点中任一节点的负载值,若负载值超过预设阈值,在可以删除该任一节点对应的节点信息,如此,可以保证系统其它节点的正常运行,另外,还可以向管理员发送报警信息,报警信息可以包括以下至少一种:节点位置、节点工作异常原因、异常等级等等,在此不做限定,如此,可以及时提醒管理员对该任一节点进行维护。另外,在具体实现中,由于传统计算机集群数据处理方式是将所有数据平均存放在搜索集群的各个服务节点中,但是按照该种做法,有以下几个缺点:1、由于每个节点的服务器cpu数、内存大小和是否ssd等硬件配置存在差异,导致每个搜索节点能够存储数据量和处理查询能力不一致,所以对出现资源得不到合理利用;2、如果按照平均分配数据的方式,如果查询需要等待所有搜索节点返回结果,可能存在配置低的搜索节点查询耗时拖慢整个服务的搜索服务;3、不能够进行节点的动态扩充,当数据量越来越大,新增搜索节点,存在数据冲刷的问题,增大维护成本,而本申请依据节点性能进行数据分配,保证了每个节点均有效发挥处理能力,提升了数据处理效率。举例说明下,以zookeeper(动物管理员)为例,zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,如图1c所示,该zookeeper可以位于服务器中,该zookeeper至少可以包括如下几个模块:寄存器组(registergroup),负载组(loadgroup),配置组(configgroup),数量组(amountgroup),可以将所有搜索节点注册到zookeeper(例:将其可以作为注册中心使用,后续进行数据分发和数据请求使用)将注册信息保存在registergroup中,注册信息可以为以下至少一种:节点名称、节点类型、节点功能等等,在此不做限定,将所有搜索节点的硬件资源配置信息(如cpu核数,内存大小,是否ssd)注册到configgroup中,上报将节点当前运行的负载数(loadaverage)每个10秒上报zookeeper存储在loadgroup中。上报当前每个搜索节点存储的记录总数存在amountgroup中。进一步地,当数据增加时,如果解析configgroup硬件配置相同,则解析amountgroup各个节点的记录总数,并加载loadgroup各个搜索节点当前的服务负载情况。如果当前各个节点搜索节点的服务器负载差距在10个数值以内,则只按照各个节点总数做数据分发,将每个节点总数按照比例(例5:4:3:1,则下发的数据量是1:3:4:5倍数下发,还存在一种情况当一个节点新增的时候出现一个节点比例非常低例100:89:1等,先将当前数据分发到最少数据的搜索节点)的关系进行分发。如果当各个搜索服务节点的配置有差异,比如cpu核数对比5:4:2则数据分发按照1.5:1.4:1.2倍的关系分发,内存比例5:4:2数据也是按照1.5:1.4:1.2倍的关系分发,是否ssd则需要按照1:1.5倍的关系(由于使用ssd能够提高30%-50%的从磁盘加载数据的效率),多个比例按照一个均值的方式求出一个硬件配置的比例关系,然后再按照第一步的方式再对数据进行分发。进一步地,对于各个搜索服务器负载情况,如果当前服务器硬件资源差距比较小,各个搜索节点数据总量差距不大时,可能因为一些硬件情况或者异常的程序(例:程序编码问题导致死锁)导致当前搜索服务器负载比较高,出现这样的问题只能尽量剔除当前异常节点分发,由于负载较高可能会导致查询和增加数据耗时非常久,而且如果继续向其增加数据或者查询数据,会导致其服务负载越来越高直到服务挂掉。当数据负载数持续1分钟超过其cpu核数的1.5倍时,主动发起从registergroup,loadgroup,configgroup,amountgroup删除对应注册信息。进一步地,当按照上面上面的情况进行切分数据到不同服务节点对应的数据集合表list中,然后从registergroup中获取所有当前能够正常使用的数据节点,将对应节点list集合数据批量条件到对应的搜索节点中。使用异步多线程同时进行添加操作,每个线程对应一个超文本传输协议http批量添加一个搜索节点。进一步地,当用户发起查询请求时,先根据registergroup中获取所有的可以使用的搜索节点,使用异步多线程请求将请求参数发到每个请求节点中,对于每个http请求设置查询10秒钟查询超时时间,可能存在集群中某个搜索节点查询耗时非常久,这样导致整个请求耗时比较久,所以设置单个查询的超时时间是以损失查询只返回部分结果来提高搜索性能。进一步地,在服务中当发现当前搜索负责的节点出现负载均值(loadaverage)持续1分钟超过其cpu核数的1.5倍,除了删除registergroup,loadgroup,configgroup,amountgroup中对应节点信息,还需要能够主动发送邮件或者短信(例:调用邮件和短信服务接口)通知对应运维人员,及时查看解决问题,是的对应信息重新注册到zookeeper的各个group主题中,保证服务能正常提供服务。可以看出,通过本申请实施例所描述的数据分配方法,获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息,获取第一待处理数据,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块,将p个数据块分别分发给p个节点中相应的节点进行处理,如此,能够确定p个节点每个上报节点的硬件资源配置信息,并依据该硬件资源配置信息将待处理数据划分为p份,并分发给相应的节点,实现了依据节点性能进行数据分配,充分发挥了每一节点的处理能力,提升了数据处理效率。与上述一致地,请参阅图2,为本申请实施例提供的一种数据分配方法的实施例流程示意图。本实施例中所描述的数据分配方法,包括以下步骤:201、获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息。202、获取第一待处理数据。203、依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块。204、将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。205、检测到出现q个新节点时,获取第二待处理数据,所述q个正整数。206、预估所述q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量。207、在所述第二待处理数据的数据量大于所述q个上限处理数据量的总和时,依据所述q个上限处理数据量将所述第二待处理数据划分为第一数据集和第二数据集,将所述第一数据集由所述q个新节点进行分配,将所述第二数据集由所述p个节点进行分配。208、在所述第二待处理数据的数据量小于或等于所述q个上限处理数据量的总和时,获取所述q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将所述第二待处理数据进行划分,得到q个数据块,将所述q个数据库分别分发给所述q个新节点相应的节点进行处理。其中,上述步骤201-步骤208所描述的数据分配方法可参考图1a所描述的数据分配方法的对应步骤。可以看出,通过本申请实施例所描述的数据分配方法,获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息,获取第一待处理数据,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块,将p个数据块分别分发给p个节点中相应的节点进行处理,检测到出现q个新节点时,获取第二待处理数据,q个正整数,预估q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量,在第二待处理数据的数据量大于q个上限处理数据量的总和时,依据q个上限处理数据量将第二待处理数据划分为第一数据集和第二数据集,将第一数据集由q个新节点进行分配,将第二数据集由p个节点进行分配,在第二待处理数据的数据量小于或等于q个上限处理数据量的总和时,获取q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将第二待处理数据进行划分,得到q个数据块,将q个数据库分别分发给q个新节点相应的节点进行处理如此,能够确定p个节点每个上报节点的硬件资源配置信息,并依据该硬件资源配置信息将待处理数据划分为p份,并分发给相应的节点,实现了依据节点性能进行数据分配,充分发挥了每一节点的处理能力,可以在保证新节点与其子节点均能正常工作的基础上,最大限度地预估数据处理量上限,有利于充分保证系统的稳定性,提升系统处理效率。与上述一致地,以下为实施上述数据分配方法的装置,具体如下:请参阅图3a,为本申请实施例提供的一种数据分配装置的实施例结构示意图。本实施例中所描述的数据分配装置,包括:第一获取单元301、第二获取单元302、划分单元303和分发单元304,具体如下:第一获取单元301,用于获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息;第二获取单元302,用于获取第一待处理数据;划分单元303,用于依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块;分发单元304,用于将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。可以看出,通过本申请实施例所描述的数据分配装置,获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息,获取第一待处理数据,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块,将p个数据块分别分发给p个节点中相应的节点进行处理,如此,能够确定p个节点每个上报节点的硬件资源配置信息,并依据该硬件资源配置信息将待处理数据划分为p份,并分发给相应的节点,实现了依据节点性能进行数据分配,充分发挥了每一节点的处理能力,提升了数据处理效率。其中,上述第一获取单元301可用于实现上述步骤101所描述的方法,第二获取单元302可用于实现上述步骤102所描述的方法,上述划分单元303可用于实现上述步骤103所描述的方法,上述分发单元304可用于实现上述步骤104所描述的方法,以下如此类推。在一个可能的示例中,在所述依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块方面,所述划分单元303具体用于:依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值;依据所述p个性能评价值确定所述p个节点中每一节点对应的分配比例值,得到p个分配比例值,所述p个分配比例值之和为1;依据所述p个分配比例值将所述第一待处理数据进行划分,得到所述p个数据块。在一个可能的示例中,所述硬件资源配置信息包括:中央处理器的核数、内存大小和负载值;在所述依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值方面,所述划分单元303具体用于:按照预设的核数与第一评价值之间的映射关系,确定硬件资源配置信息i中的核数对应的目标第一评价值,所述硬件资源配置信息i为所述p个硬件配置资源信息中的任一硬件资源配置信息;按照预设的内存大小与第二评价值之间的映射关系,确定所述硬件资源配置信息i中的内存大小对应的目标第二评价值;按照预设的负载值与第三评价值之间的映射关系,确定所述硬件资源配置信息i中的负载值对应的目标第三评价值;获取所述第一评价值对应的第一权值、所述第二评价值对应的第二权值以及所述第三评价值对应的第三权值,所述第一权值、所述第二权值与所述第三权值之和为1;依据所述目标第一评价值、所述目标第二评价值、所述目标第三评价值、所述第一权值、所述第二权值和所述第三权值进行加权运算,得到所述硬件资源配置信息i对应的评价值。可选地,如图3b所示,图3b示出了图3a所描述的数据分配装置的又一变型结构,其与图3a相比较,还可以包括:预估单元305和处理单元306,具体如下:第二获取单元302,还用于检测到出现q个新节点时,获取第二待处理数据,所述q为正整数;预估单元305,用于预估所述q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量;处理单元306,还用于在所述第二待处理数据的数据量大于所述q个上限处理数据量的总和时,依据所述q个上限处理数据量将所述第二待处理数据划分为第一数据集和第二数据集,将所述第一数据集由所述q个新节点进行分配,将所述第二数据集由所述p个节点进行分配;以及在所述第二待处理数据的数据量小于或等于所述q个上限处理数据量的总和时,获取所述q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将所述第二待处理数据进行划分,得到q个数据块,将所述q个数据块分别分发给所述q个新节点相应的节点进行处理。可选地,如图3c所示,图3c示出了图3a所描述的数据分配装置的又一变型结构,其与图3a相比较,还可以包括:预警单元307,具体如下:所述预警单元307,用于在检测到所述p个节点中任一节点的负载值超过预设阈值时,则删除该任一节点对应的节点信息,或者,向管理员发送报警信息。可以理解的是,本实施例的数据分配装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。与上述一致地,请参阅图4,为本申请实施例提供的一种服务器的实施例结构示意图。本实施例中所描述的服务器,包括:至少一个输入设备1000;至少一个输出设备2000;至少一个处理器3000,例如cpu;和存储器4000,上述输入设备1000、输出设备2000、处理器3000和存储器4000通过总线5000连接。其中,上述输入设备1000具体可为触控面板、物理按键或者鼠标。上述输出设备2000具体可为显示屏。上述存储器4000可以是高速ram存储器,也可为非易失存储器(non-volatilememory),例如磁盘存储器。上述存储器4000用于存储一组程序代码,上述输入设备1000、输出设备2000和处理器3000用于调用存储器4000中存储的程序代码,执行如下操作:上述处理器3000,用于:获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息;获取第一待处理数据;依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块;将所述p个数据块分别分发给所述p个节点中相应的节点进行处理。可以看出,通过本申请实施例所描述的服务器,获取p个节点中每一节点上报的硬件资源配置信息,得到p个硬件资源配置信息,每一节点对应一个硬件资源配置信息,获取第一待处理数据,依据p个硬件资源配置信息将第一待处理数据进行划分,得到p个数据块,每一硬件资源配置信息对应一数据块,将p个数据块分别分发给p个节点中相应的节点进行处理,如此,能够确定p个节点每个上报节点的硬件资源配置信息,并依据该硬件资源配置信息将待处理数据划分为p份,并分发给相应的节点,实现了依据节点性能进行数据分配,充分发挥了每一节点的处理能力,提升了数据处理效率。在一个可能的示例中,在所述依据所述p个硬件资源配置信息将所述第一待处理数据进行划分,得到p个数据块方面,上述处理器3000具体用于:依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值;依据所述p个性能评价值确定所述p个节点中每一节点对应的分配比例值,得到p个分配比例值,所述p个分配比例值之和为1;依据所述p个分配比例值将所述第一待处理数据进行划分,得到所述p个数据块。在一个可能的示例中,所述硬件资源配置信息包括:中央处理器的核数、内存大小和负载值;在所述依据所述p个硬件资源配置信息确定所述p个节点中每一节点的性能评价值,得到p个性能评价值方面,上述处理器3000具体用于:按照预设的核数与第一评价值之间的映射关系,确定硬件资源配置信息i中的核数对应的目标第一评价值,所述硬件资源配置信息i为所述p个硬件配置资源信息中的任一硬件资源配置信息;按照预设的内存大小与第二评价值之间的映射关系,确定所述硬件资源配置信息i中的内存大小对应的目标第二评价值;按照预设的负载值与第三评价值之间的映射关系,确定所述硬件资源配置信息i中的负载值对应的目标第三评价值;获取所述第一评价值对应的第一权值、所述第二评价值对应的第二权值以及所述第三评价值对应的第三权值,所述第一权值、所述第二权值与所述第三权值之和为1;依据所述目标第一评价值、所述目标第二评价值、所述目标第三评价值、所述第一权值、所述第二权值和所述第三权值进行加权运算,得到所述硬件资源配置信息i对应的评价值。在一个可能的示例中,上述处理器3000还具体用于:检测到出现q个新节点时,获取第二待处理数据,所述q为正整数;预估所述q个新节点中的每一新节点的上限处理数据量,得到q个上限处理数据量;在所述第二待处理数据的数据量大于所述q个上限处理数据量的总和时,依据所述q个上限处理数据量将所述第二待处理数据划分为第一数据集和第二数据集,将所述第一数据集由所述q个新节点进行分配,将所述第二数据集由所述p个节点进行分配;在所述第二待处理数据的数据量小于或等于所述q个上限处理数据量的总和时,获取所述q个新节点的硬件资源配置信息,并依据该q个新节点的硬件资源配置信息将所述第二待处理数据进行划分,得到q个数据块,将所述q个数据块分别分发给所述q个新节点相应的节点进行处理。在一个可能的示例中,上述处理器3000还具体用于:在检测到所述p个节点中任一节点的负载值超过预设阈值时,则删除该任一节点对应的节点信息,或者,向管理员发送报警信息。本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种数据分配方法的部分或全部步骤。本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例上述任一种数据分配方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过internet或其它有线或无线电信系统。本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1