一种面向大规模数据的并行任务处理方法和系统

文档序号:28100832发布日期:2021-12-22 11:15阅读:70来源:国知局
一种面向大规模数据的并行任务处理方法和系统

1.本发明涉及数据处理技术领域,尤其涉及一种面向大规模数据的并行任务处理方法和一种面向大规模数据的并行任务处理系统。


背景技术:

2.大规模数据处理技术,通常采用大量处理单元对问题进行并行求解,以期望较快获得处理结果。大规模数据处理技术中,具有众多的计算节点,每个处理单元为一个计算节点。在每次进行问题求解时,系统会向各个处理单元分配数据,等到所有的处理单元都得到处理结果后,才能进行下一次问题求解。然而,各个计算节点的处理速率有快慢,处理速率较快的计算节点在处理完毕后,可能会长时间处于空闲的等待中,而无法利用等待的空闲节点进行下一次问题求解。从而,导致大规模数据的并行处理效率低下。


技术实现要素:

3.本发明的主要目的在于提供一种面向大规模数据的并行任务处理方法,旨在提高大规模数据的并行处理效率。
4.为实现上述目的,本发明提供的面向大规模数据的并行任务处理方法,应用于面向大规模数据的并行任务处理系统,所述系统包括反馈节点、多个计算节点和多个主节点,每个所述计算节点分别与所述反馈节点和各个所述主节点通讯连接,所述反馈节点与各个所述主节点通讯连接;所述方法,包括如下步骤:当侦测到待处理数据时,向各个所述主节点发送工作状态检测信号;根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点;将所述待处理数据发送至所述管理节点;所述管理节点从各个所述计算节点中侦测空闲状态的计算节点作为处理节点;所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果。
5.优选地,所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果的步骤,包括:所述管理节点将接收到的各个待处理数据分发至各个所述处理节点,并根据待处理数据与处理节点的对应关系形成映射表;通过所述反馈节点接收各个所述处理节点的输出结果,并将已完成所述输出结果反馈的所述处理节点,在所述映射表中标记为空闲节点;根据所述映射表中未标记的处理节点确定滞后节点;所述管理节点将滞后节点未处理完的待处理数据再分配给所述空闲节点,并更新所述映射表,其中,更新后的所述映射表中,所述滞后节点未处理完的待处理数据对应的处
理节点包括滞后节点和空闲节点;在所述反馈节点接收到全部的所述待处理数据的输出结果后,将仍未标记为空闲节点的所述滞后节点作为异常节点反馈至所述管理节点;所述管理节点在下一轮任务分发时,将新的待处理数据分发至所述异常节点以外的各个所述处理节点,所述管理节点从新的待处理数据中确定一组待处理数据作为测试数据,将所述测试数据发送至所述滞后节点;根据所述异常节点是否在允许时间内将所述测试数据的输出结果发送至所述反馈节点,确定是否从所述处理节点的列表中剔除所述异常节点。
6.优选地,所述管理节点将接收到的各个待处理数据分发至各个所述处理节点,并根据待处理数据与处理节点的对应关系形成映射表的步骤,包括:获取待处理数据的数量,并获取处理节点的数量;根据所述待处理数据的数量和所述处理节点的数量,制定数据分发策略,根据所述数据分发策略,将接收到的各个待处理数据分发至各个所述处理节点;根据待处理数据与处理节点的对应关系形成映射表。
7.优选地,所述根据所述待处理数据的数量和所述处理节点的数量,制定数据分发策略,根据所述数据分发策略,将接收到的各个待处理数据分发至各个所述处理节点的步骤,包括:当所述待处理数据的数量大于所述处理节点的数量时,获取所述处理节点的数量,和所述待处理数据的数量;根据所述处理节点的数量形成处理节点矩阵,其中,所述处理节点矩阵由各个处理节点依次排列形成;根据所述待处理数据的数量和所述处理节点矩阵中的处理节点的数量,将各个所述待处理数据处理成与所述处理节点数量相等的数据集合,依次将各个数据集合对应至所述处理节点矩阵中的各个处理节点的位置,以形成待处理数据矩阵;根据所述待处理数据矩阵中每个数据集合与每个处理节点的对应关系,形成映射表。
8.其中,每个数据集合中的待处理数据的数量根据如下公式确定:其中,a为待处理数据的数量,b为处理节点的数量,a大于b;c为a除以b的余数,c>0;a
i
为第i个数据集合的待处理数据的数量,。
9.优选地,所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果的步骤之后,还包括:将各个所述处理节点分别作为一级处理节点;所述管理节点从各个所述计算节点中侦测是否有新增的空闲状态的计算节点;
当侦测到新增的空闲状态的计算节点时,按照各个一级处理节点的顺序,依次为各个一级处理节点新增空闲状态的计算节点作为下级处理节点,以形成与一级处理节点数量相等的多条数据处理链,并将一级处理节点分配到的待处理数据分配至所述处理链中的各级处理节点进行数据处理,其中,数据处理链包括若干级处理节点,每当一条数据处理链内新增一个下级处理节点,都重新计算数据处理链内每个处理节点应分配的待处理数据量,每个新增的下级处理节点的待处理数据从对应的所有上级处理节点的待处理数据中分配得到;其中,每个数据处理链中,每一级处理节点应分配到的待处理数据量根据如下方法计算得到:;其中,x
im
为包含m级处理节点的第i个数据集合中每一级处理节点应分配到的待处理数据量,m>0;b
ij
表示第i个数据集合的第j

1级处理节点生成到第j级处理节点生成之间,第i个数据集合内处理完成的待处理数据的数量,。
10.优选地,所述根据所述映射表中未标记的处理节点确定滞后节点的步骤,包括:检测所述映射表中的处理节点的标记率;侦测各个未标记为空闲节点的处理节点中的数据处理进度;将未标记为空闲节点的处理节点中的数据处理进度与所述标记率进行比对;将未标记为空闲节点的处理节点中,数据处理进度低于所述标记率的处理节点确定为滞后节点;其中,滞后节点的确定参照如下方式:其中,l
t
为所述映射表中的处理节点在t时刻的标记率,b
it
为第i个处理节点在t时刻的数据处理进度,,b为处理节点的数量。
11.优选地,所述管理节点将滞后节点未处理完的待处理数据再分配给所述空闲节点,并更新所述映射表的步骤,包括:获取所述滞后节点的数量、每个所述滞后节点对应的待处理数据的数量、所述空闲节点的数量,以及各个所述空闲节点的标记时间;当所述滞后节点的数量少于所述空闲节点的数量时,比较各个所述空闲节点的标记时间,将各个所述滞后节点未处理完的待处理数据分发至标记时间位于前列的各个所述空闲节点;当所述滞后节点的数量多于所述空闲节点的数量时,比较各个所述滞后节点分别对应的待处理数据的数量,将待处理数据的数量排名靠前的各个所述滞后节点未处理完的待处理数据发送至所述空闲节点;
当所述滞后节点的数量等于所述空闲节点的数量时,比较各个所述空闲节点的标记时间,并比较各个所述滞后节点分别对应的待处理数据的数量,将待处理数据的数量排名靠前的所述滞后节点未处理完的待处理数据分发至标记时间靠前的所述空闲节点,将待处理数据的数量排名靠后的所述滞后节点未处理完的待处理数据分发至标记时间靠后的所述空闲节点。
12.优选地,所述根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点的步骤之后,还包括:获取所述待处理数据的请求客户端;建立所述请求客户端与所述管理节点的关联;所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果的步骤之后,还包括:在所述管理节点接收到的全部待处理数据的输出结果都反馈至所述反馈节点时,所述反馈节点将全部待处理数据的输出结果处理为数据包;所述反馈节点获取所述管理节点关联的所述请求客户端,并将所述数据包发送至所述请求客户端。
13.优选地,所述当侦测到待处理数据时,向各个所述主节点发送工作状态检测信号的步骤之前,还包括:将全部的所述计算节点划分为与主节点数量相等的节点小组;为各个所述主节点设置处理顺序;每个主节点分别与各个节点小组建立不同的关联次序;所述根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点的步骤,包括:根据各个所述主节点反馈的工作状态信号,确定空闲的各个主节点;根据各个主节点的处理顺序,确定用于接收待处理数据的所述主节点;获取待处理数据的数据量,根据所述数据量确定启用的节点小组数量;根据所述节点小组数量和所述关联次序,确定启用的节点小组;将所述待处理数据分发至启用的节点小组中的各个计算节点。
14.此外,为实现上述目的,本发明还提供一种面向大规模数据的并行任务处理系统,用于执行上述任一项所述方法的步骤;所述系统包括反馈节点、多个计算节点和多个主节点,每个所述计算节点分别与所述反馈节点和各个所述主节点通讯连接,所述反馈节点与各个所述主节点通讯连接。
15.本发明的技术方案中,设置有多个主节点,多个计算节点和至少一个反馈节点;主节点用于接收任务,并管控各个计算节点形成计算矩阵;计算节点用于根据接收的待处理数据执行数据处理得到输出结果;反馈节点用于接收各个计算节点进行数据处理后的输出结果,并向请求数据处理的请求客户端反馈请求结果。本发明中的每个主节点都可以管控一项大规模数据任务,以将先完成数据处理工作的处于空闲的等待状态的计算节点,重新进行管控。当有新的待处理数据时,首先从各个主节点中侦测空闲的主节点,将其中一空闲的主节点作为管理节点,然后侦测所有计算节点是否处于空闲状态,使所有处于空闲状态
的计算节点都可以受管理节点的管控,从而,使空闲状态的计算节点快速受控以执行新一轮的处理任务,从而快速进入下一轮的待处理数据的处理响应过程中。同时,将新的待处理数据通过空闲状态的主节点来管控,以避免由同一主节点管控多项待处理任务导致的任务队列等待现象。因此,本发明的技术方案有利于提高大规模数据的并行处理效率。
附图说明
16.图1为本发明面向大规模数据的并行任务处理方法的流程示意图。
17.本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
18.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
19.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
20.请参阅图1,为实现上述目的,本发明提供一种面向大规模数据的并行任务处理方法,应用于面向大规模数据的并行任务处理系统,所述系统包括反馈节点、多个计算节点和多个主节点,每个所述计算节点分别与所述反馈节点和各个所述主节点通讯连接,所述反馈节点与各个所述主节点通讯连接;所述方法,包括如下步骤:步骤s10,当侦测到待处理数据时,向各个所述主节点发送工作状态检测信号;步骤s20,根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点;步骤s30,将所述待处理数据发送至所述管理节点;步骤s40,所述管理节点从各个所述计算节点中侦测空闲状态的计算节点作为处理节点;步骤s50,所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果。
21.本发明的技术方案中,设置有多个主节点,多个计算节点和至少一个反馈节点;主节点用于接收任务,并管控各个计算节点形成计算矩阵;计算节点用于根据接收的待处理数据执行数据处理得到输出结果;反馈节点用于接收各个计算节点进行数据处理后的输出结果,并向请求数据处理的请求客户端反馈请求结果。本发明中的每个主节点都可以管控一项大规模数据任务,以将先完成数据处理工作的处于空闲的等待状态的计算节点,重新进行管控。当有新的待处理数据时,首先从各个主节点中侦测空闲的主节点,将其中一空闲的主节点作为管理节点,然后侦测所有计算节点是否处于空闲状态,使所有处于空闲状态的计算节点都可以受管理节点的管控,从而,使空闲状态的计算节点快速受控以执行新一轮的处理任务,从而快速进入下一轮的待处理数据的处理响应过程中。同时,将新的待处理数据通过空闲状态的主节点来管控,以避免由同一主节点管控多项待处理任务导致的任务队列等待现象。因此,本发明的技术方案有利于提高大规模数据的并行处理效率。
22.其中,反馈节点、计算节点和主节点分别采用服务器,以实现大型数据的处理,每
个服务器作为一个反馈节点,或一个计算节点,或一个主节点。其中一个主节点作为总节点,或者另设一个主节点之外的总节点。当有请求客户端请求系统处理待处理数据时,先向总节点发送请求指令,总节点向各个所述主节点发送工作状态检测信号。并且,总节点根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点。在总节点中,使发出工作状态检测信号的指令具有第一优先级,以使总节点无论在处理其他任何任务,只要侦测到待处理数据,都优先向各个所述主节点发送工作状态检测信号。
23.其中,步骤s20中,被确定的管理节点处于为空闲状态,当全部的主节点都处于任务处理状态时,各个主节点向总节点反馈当前任务类型及当前任务的进度及预计处理时间,以使总节点将当前任务类型、当前任务的进度及预计处理时间通过显示界面向主节点管理员显示,从而,管理员可以根据各个主节点的任务处理情况,选择是否暂停其中一主节点的当前任务,并将暂停当前任务的主节点作为新的管理节点接收待处理数据。
24.基于本发明的面向大规模数据的并行任务处理方法的第一实施例,本发明的面向大规模数据的并行任务处理方法的第二实施例中,所述步骤s50,还包括:步骤s51,所述管理节点将接收到的各个待处理数据分发至各个所述处理节点,并根据待处理数据与处理节点的对应关系形成映射表;步骤s52,通过所述反馈节点接收各个所述处理节点的输出结果,并将已完成所述输出结果反馈的所述处理节点,在所述映射表中标记为空闲节点;步骤s53,根据所述映射表中未标记的处理节点确定滞后节点;步骤s54,所述管理节点将滞后节点未处理完的待处理数据再分配给所述空闲节点,并更新所述映射表,其中,更新后的所述映射表中,所述滞后节点未处理完的待处理数据对应的处理节点包括滞后节点和空闲节点;步骤s55,在所述反馈节点接收到全部的所述待处理数据的输出结果后,将仍未标记为空闲节点的所述滞后节点作为异常节点反馈至所述管理节点;步骤s56,所述管理节点在下一轮任务分发时,将新的待处理数据分发至所述异常节点以外的各个所述处理节点,所述管理节点从新的待处理数据中确定一组待处理数据作为测试数据,将所述测试数据发送至所述滞后节点;步骤s57,根据所述异常节点是否在允许时间内将所述测试数据的输出结果发送至所述反馈节点,确定是否从所述处理节点的列表中剔除所述异常节点。
25.在本实施例中,采用映射表表示各个处理节点和每个处理节点接收到的待处理数据的关联,其中,可以将待处理数据拆分成多个数据集合分配给各个处理节点,各个数据集合在映射表中可以采用集合名表示。例如,当处理节点为f个,待处理数据拆分成f个数据集合,在映射表用于记载:处理节点1对应数据集合1,处理节点2对应数据集合2,......,直至处理节点f对应数据集合f。
26.在反馈节点中,根据处理节点的数量分成数量相等的输出结果集合,每个输出结果集合对应1个处理节点的输出结果,例如,输出结果集合1对应接收处理节点1的输出结果。每个处理节点对应的待处理数据的数量,决定了该处理节点对应的输出结果集合应该接收的输出结果的数量,当该处理节点对应的输出结果集合接收到的输出结果的数量,与该处理节点分配的待处理数据的数量相等,且全部输出结果均由分配的处理节点反馈,则表示该处理节点已完成输出结果反馈,此时,可以在所述映射表中将该处理节点标记为空
闲节点。
27.在各个处理节点进行并行的数据处理时,各个处理节点可能存在不同的处理速度,本实施例中,从未标记的处理节点中挑选处理进程慢的处理节点作为滞后节点,为了避免一直等待滞后节点给出输出结果造成的总体进度缓慢,本实施例中,将滞后节点未处理完的待处理数据再分配给空闲节点,并更新所述映射表,其中,更新后的所述映射表中,所述滞后节点未处理完的待处理数据对应的处理节点包括滞后节点和空闲节点。例如,处理节点1为滞后节点,为其分配数据集合1,处理节点已得到 g个待处理数据的输出结果,还有w个待处理数据未处理得到输出结果,此时,将剩余的w个待处理数据分配给空闲节点m,并且也将剩余的w个待处理数据保留在处理节点1中继续处理,则新的映射表中,处理节点1和空闲节点m分别与数据集合1对应。
28.所述滞后节点未处理完的待处理数据对应的处理节点包括滞后节点和空闲节点时,反馈节点针对同一待处理数据,可以接收滞后节点的输出结果,也可以接收为滞后节点再分配的空闲节点的输出结果,反馈节点针对同一待处理数据,接收先反馈的输出结果,直至接收到所有的待处理数据的输出结果。
29.在所述反馈节点接收到全部的所述待处理数据的输出结果后,若仍有滞后节点没有标记为空闲节点,则表示该空闲节点未处理完分配的待处理数据,则该滞后节点被标记为异常节点,异常节点有可能是故障节点,为了避免对异常节点的误判,在下一轮任务分发时,异常节点不作为正常的处理节点接收待处理数据,而是从待处理数据中选出一组测试数据分配至异常节点进行测试,若异常节点未在允许时间内完成测试数据的结果输出,则管理节点将处理节点的列表中删除异常节点,以避免异常数据参与数据处理导致的结果异常延迟。
30.本实施例中通过识别异常节点和异常节点的验证,保证了各个计算节点的正常运行,以进一步提升数据处理速率。
31.基于本发明的面向大规模数据的并行任务处理方法的第二实施例,本发明的面向大规模数据的并行任务处理方法的第三实施例中,所述步骤s51,包括:步骤s511,获取待处理数据的数量,并获取处理节点的数量;步骤s512,根据所述待处理数据的数量和所述处理节点的数量,制定数据分发策略,根据所述数据分发策略,将接收到的各个待处理数据分发至各个所述处理节点;步骤s513,根据待处理数据与处理节点的对应关系形成映射表。
32.步骤s512包括几种情况:当所述待处理数据的数量不超过所述处理节点的数量时,将全部的所述待处理数据的数量分发至不同的所述处理节点,以快速得到输出结果。此种情况的处理方式较为简单。
33.当待处理数据的数量大于处理节点的数量时,对应的处理方案相对复杂,请参见第四实施例。
34.基于本发明的面向大规模数据的并行任务处理方法的第二实施例至第三实施例,本发明的面向大规模数据的并行任务处理方法的第四实施例中,所述步骤s512,包括:步骤s512a,当所述待处理数据的数量大于所述处理节点的数量时,获取所述处理节点的数量,和所述待处理数据的数量;
步骤s512b,根据所述处理节点的数量形成处理节点矩阵,其中,所述处理节点矩阵由各个处理节点依次排列形成;步骤s512c,根据所述待处理数据的数量和所述处理节点矩阵中的处理节点的数量,将各个所述待处理数据处理成与所述处理节点数量相等的数据集合,依次将各个数据集合对应至所述处理节点矩阵中的各个处理节点的位置,以形成待处理数据矩阵;步骤s512d,根据所述待处理数据矩阵中每个数据集合与每个处理节点的对应关系,形成映射表;其中,每个数据集合中的待处理数据的数量根据如下公式确定:其中,a为待处理数据的数量,b为处理节点的数量,a大于b;c为a除以b的余数,c>0;a
i
为第i个数据集合的待处理数据的数量,。
35.在本实施例中,每个处理节点用于处理1个数据集合中的待处理数据。具体的,当,表示待处理数据的数量正好为处理节点的数量的整数倍,每个处理节点分配到的数据集合的待处理数据的数量相同。
36.,表示待处理数据的数量不为处理节点的数量的整数倍,此时c为余数,除最后一个数据处理节点以外,每个处理节点的待处理数据的数量为,且最后一个数据处理节点用于处理c个待处理数据。
37.其中,每个数据集合中的待处理数据为相邻的待处理数据,在每个数据集合的待处理数据都发送到各个输出结果集合后,只要将各个输出结果集合中的结果按照顺序排列,即可得到顺序符合待处理数据顺序的总数据。
38.基于本发明的面向大规模数据的并行任务处理方法的第四实施例,本发明的面向大规模数据的并行任务处理方法的第五实施例中,所述步骤s50之后,还包括:步骤s60,将各个所述处理节点分别作为一级处理节点;步骤s70,所述管理节点从各个所述计算节点中侦测是否有新增的空闲状态的计算节点;步骤s80,当侦测到新增的空闲状态的计算节点时,按照各个一级处理节点的顺序,依次为各个一级处理节点新增空闲状态的计算节点作为下级处理节点,以形成与一级处理节点数量相等的多条数据处理链,并将一级处理节点分配到的待处理数据分配至所述处理链中的各级处理节点进行数据处理,其中,数据处理链包括若干级处理节点,每当一条数据处理链内新增一个下级处理节点,都重新计算数据处理链内每个处理节点应分配的待处理数据量,每个新增的下级处理节点的待处理数据从对应的所有上级处理节点的待处理数据中分配得到;其中,每个数据处理链中,每一级处理节点应分配到的待处理数据量根据如下方法计算得到:
;其中,x
im
为包含m级处理节点的第i个数据集合中每一级处理节点应分配到的待处理数据量,m>0;b
ij
表示第i个数据集合的第j

1级处理节点生成到第j级处理节点生成之间,第i个数据集合内处理完成的待处理数据的数量,。
39.在管理节点控制第一批空闲节点组成计算矩阵,并将待处理数据划分成各个数据集合,每个处理节点分配一个数据集合进行数据处理后,可能还会有计算节点陆续执行完上一轮处理任务,成为新的空闲节点,处于等待过程中。本实施例中,将新产生的空闲节点添加至计算矩阵中,以充分利用空闲节点来保证任务的高速处理。
40.具体的,每个新的空闲节点按照各个一级处理节点的顺序,依次分配给一级处理节点成为每个一级处理节点的二级处理节点;然后每个新的空闲节点按照各个一级处理节点的顺序,依次分配给一级处理节点的二级处理节点,成为每个二级处理节点的三级处理节点,如此重复。
41.从而,每个一级处理节点后,会陆续分配有二级处理节点,三级处理节点,直至处理节点的级别或者待处理数据的整体完成进度达到预设进度值,或者直至待处理数据处理完成。
42.利用本实施例中的方法,使每个一级处理节点,都搭建形成了一条数据处理链,在数据处理链有新的处理节点增加时,每个数据处理链中的每个处理节点分配到的待处理数据量按照平均分配原则进行分配,以保持数据处理进度的总体平衡。
43.基于本发明的面向大规模数据的并行任务处理方法的第二实施例至第五实施例,本发明的面向大规模数据的并行任务处理方法的第六实施例中,步骤s53,包括:步骤s531,检测所述映射表中的处理节点的标记率;步骤s532,侦测各个未标记为空闲节点的处理节点中的数据处理进度;步骤s533,将未标记为空闲节点的处理节点中的数据处理进度与所述标记率进行比对;步骤s534,将未标记为空闲节点的处理节点中,数据处理进度低于所述标记率的处理节点确定为滞后节点;其中,滞后节点的确定参照如下方式:其中,l
t
为所述映射表中的处理节点在t时刻的标记率,b
it
为第i个处理节点在t时刻的数据处理进度,,b为处理节点的数量。
44.在本实施例中,提供一种确定滞后节点的方案。映射表中的处理节点的标记率,指的是映射表中处理节点被标记为空闲节点的比例。由于每个处理节点中一般都有多个待处理数据在处理,因此,每个处理节点的数据处理进度用于表示每个处理节点中已处理得到
输出结果的待处理数据与该处理节点分配到的待处理数据的数量的比值。
45.在本实施例中,当第i个处理节点的当前数据处理进度小于映射表中的处理节点的标记率,判定该处理节点整体落后于数据处理的平均水平,可以将该处理节点确定为滞后节点。
46.进一步的,还可以按照预设的时间间隔将每个未标记为空闲节点的处理节点的数据处理进度与所述映射表中的处理节点的标记率比对,并将比对后确定的滞后节点反馈至管理节点,或反馈至用户。
47.基于本发明的面向大规模数据的并行任务处理方法的第六实施例,本发明的面向大规模数据的并行任务处理方法的第七实施例中,步骤s54,包括:步骤s541,获取所述滞后节点的数量、每个所述滞后节点对应的待处理数据的数量、所述空闲节点的数量,以及各个所述空闲节点的标记时间;步骤s542,当所述滞后节点的数量少于所述空闲节点的数量时,比较各个所述空闲节点的标记时间,将各个所述滞后节点未处理完的待处理数据分发至标记时间位于前列的各个所述空闲节点;步骤s543,当所述滞后节点的数量多于所述空闲节点的数量时,比较各个所述滞后节点分别对应的待处理数据的数量,将待处理数据的数量排名靠前的各个所述滞后节点未处理完的待处理数据发送至所述空闲节点;步骤s544,当所述滞后节点的数量等于所述空闲节点的数量时,比较各个所述空闲节点的标记时间,并比较各个所述滞后节点分别对应的待处理数据的数量,将待处理数据的数量排名靠前的所述滞后节点未处理完的待处理数据分发至标记时间靠前的所述空闲节点,将待处理数据的数量排名靠后的所述滞后节点未处理完的待处理数据分发至标记时间靠后的所述空闲节点。
48.本实施例用于用于优化滞后节点与空闲节点的配置。
49.其中,各个空闲节点的标记时间体现了空闲节点的处理效率,标记时间靠前的空闲节点的处理效率高。
50.在步骤s542中,有充足的空闲节点,此时将滞后节点未处理完的待处理数据分配至标记时间位于前列的各个所述空闲节点,有利于将未完成数据在处理效率高的空闲节点中完成处理。
51.步骤s543中,空闲节点的数量不够,将待处理数据的数量排名靠前的各个所述滞后节点未处理完的待处理数据发送至所述空闲节点之后,待处理数据的数量排名靠后的各个滞后节点可以继续等待分配新的空闲节点,若一直未等待到新的空闲节点,则自身待处理数据不多,可以由自身执行剩下的待处理数据的处理。
52.步骤s544中,空闲节点的数量足够,此时,将未处理完的待处理数据比较多的滞后节点对应的未完成数据发送至处理效率高的空闲节点,将未处理完的待处理数据比较少的滞后节点对应的未完成数据发送至处理效率相对慢一点的空闲节点,有助于实现各个处理节点的任务处理时间平衡,使整个计算矩阵得到较快的完成速率。
53.基于本发明的面向大规模数据的并行任务处理方法的第一实施例至第七实施例,本发明的面向大规模数据的并行任务处理方法的第八实施例中,步骤s20之后,还包括:步骤s21,获取所述待处理数据的请求客户端;
步骤s22,建立所述请求客户端与所述管理节点的关联;步骤s23,所述管理节点将所述待处理数据分发至各个所述处理节点,以通过各个所述处理节点对所述待处理数据进行数据处理,通过所述反馈节点接收各个所述处理节点的输出结果的步骤之后,还包括:步骤s24,在所述管理节点接收到的全部待处理数据的输出结果都反馈至所述反馈节点时,所述反馈节点将全部待处理数据的输出结果处理为数据包;步骤s25,所述反馈节点获取所述管理节点关联的所述请求客户端,并将所述数据包发送至所述请求客户端。
54.具体的,所述反馈节点将全部待处理数据的输出结果处理为数据包,并将数据包发送至请求客户端,有助于避免输出结果的丢失。进一步的,在请求客户端接收到数据包后,在请求客户端解析出数据包中的输出结果。
55.基于本发明的面向大规模数据的并行任务处理方法的第一实施例至第八实施例,本发明的面向大规模数据的并行任务处理方法的第九实施例中,所述步骤s10之前,还包括:步骤s90,将全部的所述计算节点划分为与主节点数量相等的节点小组;步骤s100,为各个所述主节点设置处理顺序;步骤s110,每个主节点分别与各个节点小组建立不同的关联次序;步骤s120,所述根据各个所述主节点反馈的工作状态信号,从各个所述主节点中确定管理节点的步骤,包括:步骤s130,根据各个所述主节点反馈的工作状态信号,确定空闲的各个主节点;步骤s140,根据各个主节点的处理顺序,确定用于接收待处理数据的所述主节点;步骤s150,获取待处理数据的数据量,根据所述数据量确定启用的节点小组数量;步骤s160,根据所述节点小组数量和所述关联次序,确定启用的节点小组;步骤s170,将所述待处理数据分发至启用的节点小组中的各个计算节点。
56.具体的,本实施例中,为各个主节点设置处理顺序,当同时存在多个可用的主节点时,将可用的主节点中处理顺序最靠前的主节点作为管理节点,以避免管理节点的选用混乱。
57.本实施例中,每个计算节点划分为了节点数量相等的多个节点小组,且每个主节点分别与各个节点小组建立了不同的关联次序,例如,第一个主节点与各个节点小组的关联次序为:第五个节点小组、第四个节点小组、第三个节点小组、第二个节点小组,第一个节点小组;第二个主节点与各个节点小组的关联次序为:第一个节点小组、第二个节点小组、第三个节点小组、第四个节点小组,第五个节点小组。
58.当同时有多个任务要采用多个主节点分别作为管理节点时,每个管理节点获取待处理数据的数据量,根据所述数据量确定启用的节点小组数量,然后,按照与各个节点小组的关联次序,启用排序靠前的节点小组,以避免各个管理节点启用相同的节点小组造成的处理混乱。
59.进一步的,每个管理节点分别与各个节点小组建立不同的关联次序,还可以保证对空闲节点的搜寻过程不相互干扰。每个管理节点依次从每个关联的节点小组中搜索空闲节点,以区别各个管理节点的搜索范围,避免不同的管理节点同时在同一个节点小组中搜
索空闲节点,导致空闲节点同时被不同管理节点启用造成的混乱。
60.进一步的,不同的管理节点仍有一定概率在同一节点小组搜索空闲节点,此时,将空闲节点分配给处理顺序靠前的管理节点选用,以避免空闲节点被分配给多个管理节点。
61.在另一实施例中,所述系统还包括check单元,所述check单元分别与各个所述计算节点和所述反馈节点通信连接;每个所述计算节点包括通讯连接的数据处理单元和内存单元,所述数据处理单元还通讯连接有外部存储单元;所述方法,还包括:每个所述处理节点在接收到所述待处理数据后,在所述数据处理单元中进行数据处理得到输出结果;将所述输出结果存储至所述内存单元,并将所述输出结果发送至所述反馈节点;在所述反馈节点接收到所有的待处理数据对应的输出结果后,计算得到结果数据;所述check单元侦测到所述结果数据后,控制每个所述内存单元删除存储的输出结果。
62.为实现上述目的,本发明还提供一种面向大规模数据的并行任务处理系统,用于执行如上述任一实施例所述方法的步骤;所述系统包括反馈节点、多个计算节点和多个主节点,每个所述计算节点分别与所述反馈节点和各个所述主节点通讯连接,所述反馈节点与各个所述主节点通讯连接。
63.面向大规模数据的并行任务处理系统,具有所述面向大规模数据的并行任务处理方法的所有有益效果,在此不作赘述。
64.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个计算机可读存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备进入本发明各个实施例所述的方法。
65.在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、 或“第一实施例~第x实施例”等的描述意指结合该实施例或示例描述的具体特征、 结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料、方法步骤或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
66.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
67.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
68.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1