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

并行数据处理方法、装置、计算机设备及存储介质与流程

2022-03-23 08:32:49 来源:中国专利 TAG:


1.本发明实施例涉及数据处理领域,尤其是一种并行数据处理方法、装置、计算机设备及存储介质。


背景技术:

2.并行处理(parallel processing)是计算机系统中能同时执行两个或多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。为使用并行处理,首先需要对程序进行并行化处理,也就是说将工作各部分分配到不同处理进程(线程)中。
3.本发明创造的发明人在研究中发现,现有技术中,在存在多个计算机节点共同参与的数据处理过程中,并行处理存在多个设备之间相互关联的问题,很难实现自动化的并行处理。


技术实现要素:

4.本发明实施例提供一种能够在分散的计算节点中,实现统一管理的并行数据处理方法、装置、计算机设备及存储介质。
5.为解决上述技术问题,本发明创造的实施例采用的一个技术方案是:提供一种并行数据处理方法,包括:
6.通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点;
7.所述主节点解析待处理的目标数据,将所述目标数据拆分为与所述从属节点数量相同的并行任务,并将所述并行任务下发至所述至少两个从属节点中;
8.所述至少两个从属节点各自对所属的并行任务进行数据运算,各自生成与所述并行任务对应的处理结果,并上传至所述主节点;
9.所述主节点接收所述至少两个从属节点各自上传的处理结果,并将所述处理结果合并后发送至预设的目标终端,其中,所述目标数据由所述目标终端上传。
10.可选地,所述通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点包括:
11.采集上一个数据处理周期内各计算节点的第一运行参数;
12.将所述第一运行参数依次输入至预设的设备打分模型中,其中,所述设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型;
13.读取所述设备打分模型输出的各计算节点的运算分数;
14.选取所述运算分数最高的计算节点为主节点,将其他计算节点确定为从属节点。
15.可选地,所述通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点包括:
16.采集上一个数据处理周期内各计算节点的第二运行参数;
17.对各所述第二运行参数进行数据合并生成合并数据,并对所述合并数据进行哈希运算生成哈希值;
18.根据所述哈希值在各所述结算节点中确定所述主节点和至少两个从属节点。
19.可选地,所述根据所述哈希值在各所述结算节点中确定所述主节点和至少两个从属节点包括:
20.读取所述计算节点的节点数量;
21.将所述节点数量与所述哈希值进行比对;
22.当所述哈希值小于等于所述节点数量时,将所述哈希值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点;
23.当所述哈希值大于所述节点数量时,根据所述节点数量对所述哈希值进行求余运算生成余数值,将所述余数值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点。
24.可选地,所述通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点包括:
25.在预设的倒计时区间内各计算节点各自随机生成一个倒计时任务;
26.当所述倒计时任务达成后,各计算节点向其他计算节点发送选举请求,并接收所述其他计算节点回复的选举回复;
27.当任一计算节点收到的选举回复条数大于节点数量的一半时,则确定该计算节点为主节点,确定剩余计算节点为从属节点。
28.可选地,所述主节点解析待处理的目标数据,将所述目标数据拆分为与所述从属节点数量相同的并行任务,并将所述并行任务下发至所述至少两个从属节点中包括:
29.所述主节点对所述目标数据进行数据切片生成所述并行任务,并将所述并行任务依次存储在任务队列中;
30.所述主节点生成第一任务线程,并通过所述第一任务线程将所述任务队列中的所述并行任务分发至所述至少两个从属节点中。
31.可选地,所述至少两个从属节点各自对所属的并行任务进行数据运算,各自生成与所述并行任务对应的处理结果包括:
32.所述至少两个从属节点各自的主线程启动任务队列,并创建第一子线程持续接受来自于主节点的并行任务;
33.所述主线程创建用于处理所述并行任务的自定义任务池,并将所述并行任务分发至经过初始化并开启jta事务的第二子线程中;
34.所述主线程接收所述第二子线程对所述并行任务的处理结果,并向所述主节点发送所述处理结果。
35.为解决上述技术问题,本发明实施例还提供一种并行数据处理装置,包括:
36.推举模块,用于通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点;
37.处理模块,用于所述主节点解析待处理的目标数据,将所述目标数据拆分为与所述从属节点数量相同的并行任务,并将所述并行任务下发至所述至少两个从属节点中;
38.运算模块,用于所述至少两个从属节点各自对所属的并行任务进行数据运算,各
自生成与所述并行任务对应的处理结果,并上传至所述主节点;
39.执行模块,用于所述主节点接收所述至少两个从属节点各自上传的处理结果,并将所述处理结果合并后发送至预设的目标终端,其中,所述目标数据由所述目标终端上传。
40.可选地,所述并行数据处理装置还包括:
41.第一采集子模块,用于采集上一个数据处理周期内各计算节点的第一运行参数;
42.第一分类子模块,用于将所述第一运行参数依次输入至预设的设备打分模型中,其中,所述设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型;
43.第一读取子模块,用于读取所述设备打分模型输出的各计算节点的运算分数;
44.第一确认子模块,用于选取所述运算分数最高的计算节点为主节点,将其他计算节点确定为从属节点。
45.可选地,所述并行数据处理装置还包括:
46.第二采集子模块,用于采集上一个数据处理周期内各计算节点的第二运行参数;
47.第一合并子模块,用于对各所述第二运行参数进行数据合并生成合并数据,并对所述合并数据进行哈希运算生成哈希值;
48.第二确认子模块,用于根据所述哈希值在各所述结算节点中确定所述主节点和至少两个从属节点。
49.可选地,所述并行数据处理装置还包括:
50.第一读取子模块,用于读取所述计算节点的节点数量;
51.第一比对子模块,用于将所述节点数量与所述哈希值进行比对;
52.第一执行子模块,用于当所述哈希值小于等于所述节点数量时,将所述哈希值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点;
53.第二执行子模块,用于当所述哈希值大于所述节点数量时,根据所述节点数量对所述哈希值进行求余运算生成余数值,将所述余数值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点。
54.可选地,所述并行数据处理装置还包括:
55.第一生成子模块,用于在预设的倒计时区间内各计算节点各自随机生成一个倒计时任务;
56.第一处理子模块,用于当所述倒计时任务达成后,各计算节点向其他计算节点发送选举请求,并接收所述其他计算节点回复的选举回复;
57.第三执行子模块,用于当任一计算节点收到的选举回复条数大于节点数量的一半时,则确定该计算节点为主节点,确定剩余计算节点为从属节点。
58.可选地,所述并行数据处理装置还包括:
59.第二处理子模块,用于所述主节点对所述目标数据进行数据切片生成所述并行任务,并将所述并行任务依次存储在任务队列中;
60.第四执行子模块,用于所述主节点生成第一任务线程,并通过所述第一任务线程将所述任务队列中的所述并行任务分发至所述至少两个从属节点中。
61.可选地,所述并行数据处理装置还包括:
62.第三处理子模块,用于所述至少两个从属节点各自的主线程启动任务队列,并创建第一子线程持续接受来自于主节点的并行任务;
63.第四处理子模块,用于所述主线程创建用于处理所述并行任务的自定义任务池,并将所述并行任务分发至经过初始化并开启jta事务的第二子线程中;
64.第五执行子模块,用于所述主线程接收所述第二子线程对所述并行任务的处理结果,并向所述主节点发送所述处理结果。
65.为解决上述技术问题本发明实施例还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述并行数据处理方法的步骤。
66.为解决上述技术问题本发明实施例还提供一种计算机存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述所述并行数据处理方法的步骤。
67.本发明实施例的有益效果是:在多计算节点系统中,通过推选的方式从多个计算节点中筛选出主节点和从属节点,由主节点接收目标数据,并对目标数据进行统一的调度和任务拆分,然后,将拆分后的并行数据分别下发至各个从属节点中。由从属节点对并行任务进行运算并得到多个处理结果,主节点对多个处理结果进行合并生成目标节点的处理结果后,将总的处理结果发送至对应的目标终端。能够通过主节点对从属节点进行统一的任务分配,实现并行数据的高效自动化处理。
附图说明
68.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
69.图1为本技术一个具体实施例的并行数据处理方法的基本流程示意图;
70.图2为本技术一个具体实施例的推举协议的第一种实施方式示意图;
71.图3为本技术一个具体实施例的推举协议的第二种实施方式示意图;
72.图4为本技术一个具体实施例的根据哈希值确定主节点的流程示意图;
73.图5为本技术一个具体实施例的推举协议的第三种实施方式示意图;
74.图6为本技术一个具体实施例的并行任务分发处理的流程示意图;
75.图7为本技术一个实施例的参数节点处理并行任务的流程示意图;
76.图8为本技术一个实施例的并行数据处理装置基本结构示意图;
77.图9为本技术一个实施例的计算机设备的基本结构框图。
具体实施方式
78.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
79.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
80.本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术
语和科学术语),具有与本技术所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
81.本技术领域技术人员可以理解,这里所使用的“终端”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;pcs(personal communications service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;pda(personal digital assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或gps(global positioning system,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是pda、mid(mobile internet device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
82.请参阅图1,图1为本实施例并行数据处理方法的基本流程示意图。如图1所示,一种并行数据处理方法,包括:
83.s110、通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点;
84.本实施方式中的并行数据处理方法能够适用于多计算节点的分布式系统中。多个计算节点具有相同的功能,即对数据进行数据运算。当进行数据运算时,需要在多个计算节点中推举产生一个主节点,由主节点来对需要处理的目标数据进行任务调度。
85.主节点的产生不是固定的而是动态的,在一个数据运算的周期内,需要推举产生一个主节点,当主节点产生后其他的计算节点则自动确认成为从属节点。从属节点接收主节点的分配的任务,并完成分配任务的运算处理。
86.主节点的产生需要通过推举协议产生,推举协议的第一种推举方式为:通过神经网络模型对各个计算节点的运行状态进行计算,选取其中运行状态最好的计算节点作为主节点。本推举方式针对的应用场景为:需要强大算力的主节点的应用场景。
87.具体地,采集上一个数据处理周期内各个计算节点的第一运行参数,第一运行参数用于表征各个计算节点在上一个数据处理周期内的运行状态,因此,第一运行参数包括(不限于):各计算节点的数据处理速度、数据传输时间、数据处理结果的准确度、内存使用率或者其他能够表征计算机运算效率的参数。
88.将采集的各个第一运行参数依次输入至预设的设备打分模型中,设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型。设备打分模型是由卷积神经网络模型、深度卷积神经网络模型、循环神经网络模型当中的一种或者任意一种的变种模型组成,经过初始化后,采用标注数据对初始化的模型进行监督训练,训练至收敛后生成
的模型。训练至收敛状态的设备打分模型能够对第一运行参数进行特征提取和分类,得到各个计算节点的运算分数。
89.确定各个运算节点的运算分数后,选取运算分值最大的计算节点为主节点,主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。
90.推举协议的第二种推举方式为:通过采集各个计算节点在上一个数据处理周期内的第二运行参数,其中,第一运行参数与第二运行参数类别相同。然后,将各个计算节点的第二运行参数进行合并,生成合并数据。通过哈希函数计算式计算合并数据的哈希值,计算得到哈希值后,根据哈希值在众多的计算节点中筛选主节点。本推举方式针对的应用场景为:对数据安全性要求更高的应用场景。
91.具体地,采集上一个数据处理周期内各个计算节点的第二运行参数,第二运行参数用于表征各个计算节点在上一个数据处理周期内的运行状态,因此,第二运行参数包括(不限于):各计算节点的数据处理速度、数据传输时间、数据处理结果的准确度、内存使用率或者其他能够表征计算机运算效率的参数。
92.得到各个计算节点的第二运行参数后,将所有节点的第二运行参数合并到一个数据表中,通过预设的哈希计算式,对该数据表中的所有第二运行参数进行哈希运算,哈希运算的结果为得到一个用于表征所有节点第二运行参数的哈希值。
93.得到哈希值后,这个哈希值有可能小于等于系统中计算节点的节点数量,也有可能大于系统中计算节点的节点数量。针对这两种不同的情况,采用不同的主节点确定办法。首先,系统中每个节点都有节点编号从1-n(n>=3),n的值等于节点数量;当哈希值小于等于系统中计算节点的节点数量时,直接根据将哈希值对应的节点编号的计算节点确定为主节点;当哈希值大于系统中计算节点的节点数量时,将n作为被除数对哈希值记性求余运算,求余运算得到的余数值小于等于n,此时,再根据余数值对应的节点编号的计算节点确定为主节点。主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。通过这种方法推举出的主节点,完全有上述数据处理周期内的所有节点的第二运行参数决定,布局很强的不可预见性,能够避免系统中主节点被针对性攻击。
94.推举协议的第三种推举方式为:通过计算节点之间的选举请求进行确定,当过半数以上的计算节点推举同一个节点为主节点时,该节点为主节点,其他节点在主节点确认后,自动确认为从属节点。本推举方式针对的应用场景为:同样应用于对数据安全性要求更高的应用场景,同时,能够有效的避免有些故障节点被推举为主节点,保证了系统运行的稳定性。
95.具体地,当上衣各数据运算周期完成,或者被选举的主节点处于故障状态时,各个计算节点根据自身的运行状态,当上一个任务被执行完成后,每个计算节点根据阈值的倒计时脚本,在预设的倒计时区间内随机生成一个倒计时任务,倒计时区间为150ms-300ms。当倒计时时间生成后,各个计算节点根据倒计时时间生成一个倒计时任务。
96.当各节点的倒计时任务达成即倒计时时间归零后,计算节点向其他各计算节点都发送一个选举请求,其他计算节点接收到选举请求后,如果自己的倒计时任务还没有完成,则回复该选举请求同意选举请求的发送节点为主节点,并回复选举回复至该节点;如果,其
他计算节点在收到选举请求时,已经完成了自己的倒计时任务,则不回复选举请求,即不同意发送选举请求的节点为主节点,而是自己再向其他节点发送选举请求,请求选举自己为主节点。如此,最先发出选举请求的计算节点获得回复的可能性最大,也最先超过一半的票数,被成功选举为新的主节点。主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。由于,故障节点无法发送和接收选举信息,因此,这种选举方式能够有效的避免故障节点参与运算,提高了系统的流畅性和稳定性。由于,定时任务的随机性,也能够避免主节点被他人获知和攻击,增加了安全性。
97.本实施方式中的从属节点为2个,但是,根据具体应用场景的不同,在一些实施方式中,从属节点的数量能够为3个、4个、5个或者更多个。
98.s120、所述主节点解析待处理的目标数据,将所述目标数据拆分为与所述从属节点数量相同的并行任务,并将所述并行任务下发至所述至少两个从属节点中;
99.主节点确定后,由主节点接收目标节点发送的目标数据,当主节点接收到目标数据后,根据从属节点的数量,对目标数据进行数据切片,生成与从属节点数量相同的并行任务。
100.主节点将单个的并行任务存入队列中,然后,创建两个线程,其中,一个线程用于将将队列中任务一次分发给所有的从属节点,另一个线程则接收每个从属节点上传的处理结果,并进行异常率的计算,处理结果的合并,并将数据处理的过程同步记录到主节点的日志。
101.s130、所述至少两个从属节点各自对所属的并行任务进行数据运算,各自生成与所述并行任务对应的处理结果,并上传至所述主节点;
102.每个从属节点在接收到主节点下发的并行任务后,从属节点的主线程启动任务队列,创建一个子线程持续接受来自于主节点的并行任务;然后,由主线程创建自定义任务池,用于处理入库任务;新建一个子线程并进行初始化,开启jta事务;主线程分配并行任务给子线程,并接受子线程上传的处理结果,并将处理结果上传至主节点用于接收的线程中。
103.在一些实施方式中,从属节点的主线程接受到子线程反馈后,取队列任务继续分配;若任务已分配完成,检测主节点发出提交或回滚的指令;接收到主节点的事务命令后,主线程通知所有线程进行commit或rollback操作。
104.s140、所述主节点接收所述至少两个从属节点各自上传的处理结果,并将所述处理结果合并后发送至预设的目标终端,其中,所述目标数据由所述目标终端上传。
105.主节点接收到每个从属节点上传的处理结果后,根据任务切片时,每个并行任务的切片顺序将不同从属节点的处理结果进行组合,生成目标数据总的处理结果,然后,将总的处理结果发送至目标终端,完成对目标终端的数据处理请求。
106.上述实施方式中,在多计算节点系统中,通过推选的方式从多个计算节点中筛选出主节点和从属节点,由主节点接收目标数据,并对目标数据进行统一的调度和任务拆分,然后,将拆分后的并行数据分别下发至各个从属节点中。由从属节点对并行任务进行运算并得到多个处理结果,主节点对多个处理结果进行合并生成目标节点的处理结果后,将总的处理结果发送至对应的目标终端。能够通过主节点对从属节点进行统一的任务分配,实现并行数据的高效自动化处理。
107.在一些实施方式中,主节点通过神经网络模型进行推举。请参阅图2,图2为本实施例推举协议的第一种实施方式示意图。
108.如图2所示,s110包括:
109.s111a、采集上一个数据处理周期内各计算节点的第一运行参数;
110.采集上一个数据处理周期内各个计算节点的第一运行参数,第一运行参数用于表征各个计算节点在上一个数据处理周期内的运行状态,因此,第一运行参数包括(不限于):各计算节点的数据处理速度、数据传输时间、数据处理结果的准确度、内存使用率或者其他能够表征计算机运算效率的参数。
111.s112a、将所述第一运行参数依次输入至预设的设备打分模型中,其中,所述设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型;
112.将采集的各个第一运行参数依次输入至预设的设备打分模型中,设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型。设备打分模型是由卷积神经网络模型、深度卷积神经网络模型、循环神经网络模型当中的一种或者任意一种的变种模型组成,经过初始化后,采用标注数据对初始化的模型进行监督训练,训练至收敛后生成的模型。
113.s113a、读取所述设备打分模型输出的各计算节点的运算分数;
114.训练至收敛状态的设备打分模型能够对第一运行参数进行特征提取和分类,得到各个计算节点的运算分数。
115.s114a、选取所述运算分数最高的计算节点为主节点,将其他计算节点确定为从属节点。
116.确定各个运算节点的运算分数后,选取运算分值最大的计算节点为主节点,主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。本推举方式针对的应用场景为:需要强大算力的主节点的应用场景。通过神经网络模型筛选得到的主节点,相比于其他节点有更加强大的运算能力,有利于提高系统的统筹管理效率。
117.在一些实施方式中,需要通过哈希值确定主节点。请参阅图3,图3为本实施例推举协议的第二种实施方式示意图。
118.如图3所示,s110包括:
119.s111b、采集上一个数据处理周期内各计算节点的第二运行参数;
120.采集上一个数据处理周期内各个计算节点的第二运行参数,第二运行参数用于表征各个计算节点在上一个数据处理周期内的运行状态,因此,第二运行参数包括(不限于):各计算节点的数据处理速度、数据传输时间、数据处理结果的准确度、内存使用率或者其他能够表征计算机运算效率的参数。
121.s112b、对各所述第二运行参数进行数据合并生成合并数据,并对所述合并数据进行哈希运算生成哈希值;
122.得到各个计算节点的第二运行参数后,将所有节点的第二运行参数合并到一个数据表中,通过预设的哈希计算式,对该数据表中的所有第二运行参数进行哈希运算,哈希运算的结果为得到一个用于表征所有节点第二运行参数的哈希值。
123.s113b、根据所述哈希值在各所述结算节点中确定所述主节点和至少两个从属节
点。
124.得到哈希值后,这个哈希值有可能小于等于系统中计算节点的节点数量,也有可能大于系统中计算节点的节点数量。针对这两种不同的情况,采用不同的主节点确定办法。具体请参阅图4,图4为本实施例根据哈希值确定主节点的流程示意图。
125.如图4所示,s113b包括:
126.s114b、读取所述计算节点的节点数量;
127.在根据哈希值确定目标节点之前,需要读取计算节点的节点数量,节点数量至系统中所有计算节点的个数。
128.s115b、将所述节点数量与所述哈希值进行比对;
129.得到哈希值后,这个哈希值有可能小于等于系统中计算节点的节点数量,也有可能大于系统中计算节点的节点数量。因此,需要将节点数量和哈希值进行比对。
130.s116b、当所述哈希值小于等于所述节点数量时,将所述哈希值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点;
131.系统中每个节点都有节点编号从1-n(n>=3),n的值等于节点数量;当哈希值小于等于系统中计算节点的节点数量时,直接根据将哈希值对应的节点编号的计算节点确定为主节点。
132.s117b、当所述哈希值大于所述节点数量时,根据所述节点数量对所述哈希值进行求余运算生成余数值,将所述余数值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点。
133.当哈希值大于系统中计算节点的节点数量时,将n作为被除数对哈希值记性求余运算,求余运算得到的余数值小于等于n,此时,再根据余数值对应的节点编号的计算节点确定为主节点。主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。通过这种方法推举出的主节点,完全有上述数据处理周期内的所有节点的第二运行参数决定,布局很强的不可预见性,能够避免系统中主节点被针对性攻击。
134.在一些实施方式中,主节点通过计算节点之间的选举请求进行确定。请参阅图5,图5为本实施例推举协议的第三种实施方式示意图。
135.如图5所示,s110包括:
136.s111c、在预设的倒计时区间内各计算节点各自随机生成一个倒计时任务;
137.当上衣各数据运算周期完成,或者被选举的主节点处于故障状态时,各个计算节点根据自身的运行状态,当上一个任务被执行完成后,每个计算节点根据阈值的倒计时脚本,在预设的倒计时区间内随机生成一个倒计时任务,倒计时区间为150ms-300ms。当倒计时时间生成后,各个计算节点根据倒计时时间生成一个倒计时任务。
138.s112c、当所述倒计时任务达成后,各计算节点向其他计算节点发送选举请求,并接收所述其他计算节点回复的选举回复;
139.当各节点的倒计时任务达成即倒计时时间归零后,计算节点向其他各计算节点都发送一个选举请求,其他计算节点接收到选举请求后,如果自己的倒计时任务还没有完成,则回复该选举请求同意选举请求的发送节点为主节点,并回复选举回复至该节点;如果,其他计算节点在收到选举请求时,已经完成了自己的倒计时任务,则不回复选举请求,即不同
意发送选举请求的节点为主节点,而是自己再向其他节点发送选举请求,请求选举自己为主节点。
140.s113c、当任一计算节点收到的选举回复条数大于节点数量的一半时,则确定该计算节点为主节点,确定剩余计算节点为从属节点。
141.如此,最先发出选举请求的计算节点获得回复的可能性最大,也最先超过一半的票数,被成功选举为新的主节点。主节点确定后,由主节点向各个其他节点发送主节点确认信息,其他节点接收到该信息后,自动确认自己为从属节点,等待主节点的任务数据。由于,故障节点无法发送和接收选举信息,因此,这种选举方式能够有效的避免故障节点参与运算,提高了系统的流畅性和稳定性。由于,定时任务的随机性,也能够避免主节点被他人获知和攻击,增加了安全性。
142.请参阅图6,图6为本实施例并行任务分发处理的流程示意图。
143.如图6所示s120包括:
144.s121、所述主节点对所述目标数据进行数据切片生成所述并行任务,并将所述并行任务依次存储在任务队列中;
145.主节点确定后,由主节点接收目标节点发送的目标数据,当主节点接收到目标数据后,根据从属节点的数量,对目标数据进行数据切片,生成与从属节点数量相同的并行任务。
146.s122、所述主节点生成第一任务线程,并通过所述第一任务线程将所述任务队列中的所述并行任务分发至所述至少两个从属节点中。
147.主节点将单个的并行任务存入队列中,然后,创建两个线程,其中,一个为第一任务线程。第一任务线程用于将将队列中任务一次分发给所有的从属节点,另一个线程则接收每个从属节点上传的处理结果,并进行异常率的计算,处理结果的合并,并将数据处理的过程同步记录到主节点的日志。
148.请参阅图7,图7为本实施例参数节点处理并行任务的流程示意图。
149.如图7所示,s130包括:
150.s131、所述至少两个从属节点各自的主线程启动任务队列,并创建第一子线程持续接受来自于主节点的并行任务;
151.每个从属节点在接收到主节点下发的并行任务后,从属节点的主线程启动任务队列,创建一个第一子线程持续接受来自于主节点的并行任务。
152.s132、所述主线程创建用于处理所述并行任务的自定义任务池,并将所述并行任务分发至经过初始化并开启jta事务的第二子线程中;
153.由主线程创建自定义任务池,用于处理入库任务;并新建第二子线程并进行初始化,开启jta事务。jta允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。jdbc驱动程序的jta支持极大地增强了数据访问能力。
154.s133、所述主线程接收所述第二子线程对所述并行任务的处理结果,并向所述主节点发送所述处理结果。
155.主线程分配并行任务给子线程,并接受子线程上传的处理结果,并将处理结果上传至主节点用于接收的线程中。
156.在一些实施方式中,从属节点的主线程接受到子线程反馈后,取队列任务继续分
配;若任务已分配完成,检测主节点发出提交或回滚的指令;接收到主节点的事务命令后,主线程通知所有线程进行commit或rollback操作。
157.为解决上述技术问题,本发明实施例还提供并行数据处理装置。具体请参阅图8,图8为本实施例并行数据处理装置基本结构示意图。
158.如图8所示,一种并行数据处理装置,包括:推举模块110、处理模块120、运算模块130和执行模块140。其中,推举模块110用于通过预设的推举协议在预设的多个计算节点中推举出一个主节点和至少两个从属节点;处理模块120用于所述主节点解析待处理的目标数据,将所述目标数据拆分为与所述从属节点数量相同的并行任务,并将所述并行任务下发至所述至少两个从属节点中;运算模块130用于所述至少两个从属节点各自对所属的并行任务进行数据运算,各自生成与所述并行任务对应的处理结果,并上传至所述主节点;执行模块140用于所述主节点接收所述至少两个从属节点各自上传的处理结果,并将所述处理结果合并后发送至预设的目标终端,其中,所述目标数据由所述目标终端上传。
159.并行数据处理装置在多计算节点系统中,通过推选的方式从多个计算节点中筛选出主节点和从属节点,由主节点接收目标数据,并对目标数据进行统一的调度和任务拆分,然后,将拆分后的并行数据分别下发至各个从属节点中。由从属节点对并行任务进行运算并得到多个处理结果,主节点对多个处理结果进行合并生成目标节点的处理结果后,将总的处理结果发送至对应的目标终端。能够通过主节点对从属节点进行统一的任务分配,实现并行数据的高效自动化处理。
160.在一些实施方式中,所述并行数据处理装置,还包括:第一采集子模块、第一分类子模块和第一确认子模块。其中,第一采集子模块用于采集上一个数据处理周期内各计算节点的第一运行参数;第一分类子模块用于将所述第一运行参数依次输入至预设的设备打分模型中,其中,所述设备打分模型为预先训练至收敛状态,用于对计算机节点评分的神经网络模型;第一读取子模块用于读取所述设备打分模型输出的各计算节点的运算分数;第一确认子模块用于选取所述运算分数最高的计算节点为主节点,将其他计算节点确定为从属节点。
161.在一些实施方式中,所述并行数据处理装置,还包括:第二采集子模块、第一合并子模块和第二确认子模块。其中,第二采集子模块用于采集上一个数据处理周期内各计算节点的第二运行参数;第一合并子模块用于对各所述第二运行参数进行数据合并生成合并数据,并对所述合并数据进行哈希运算生成哈希值;第二确认子模块用于根据所述哈希值在各所述结算节点中确定所述主节点和至少两个从属节点。
162.在一些实施方式中,所述并行数据处理装置,还包括:第一读取子模块、第一比对子模块、第一执行子模块和第二执行子模块。其中,第一读取子模块用于读取所述计算节点的节点数量;第一比对子模块用于将所述节点数量与所述哈希值进行比对;第一执行子模块用于当所述哈希值小于等于所述节点数量时,将所述哈希值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点;第二执行子模块用于当所述哈希值大于所述节点数量时,根据所述节点数量对所述哈希值进行求余运算生成余数值,将所述余数值对应节点编号表征的计算节点确定为主节点,将其他计算节点确定为从属节点。
163.在一些实施方式中,所述并行数据处理装置,还包括:第一生成子模块、第一处理子模块和第三执行子模块。其中,第一生成子模块用于在预设的倒计时区间内各计算节点
各自随机生成一个倒计时任务;第一处理子模块用于当所述倒计时任务达成后,各计算节点向其他计算节点发送选举请求,并接收所述其他计算节点回复的选举回复;第三执行子模块用于当任一计算节点收到的选举回复条数大于节点数量的一半时,则确定该计算节点为主节点,确定剩余计算节点为从属节点。
164.在一些实施方式中,所述并行数据处理装置,还包括:第二处理子模块和第四执行子模块。其中,第二处理子模块用于所述主节点对所述目标数据进行数据切片生成所述并行任务,并将所述并行任务依次存储在任务队列中;第四执行子模块用于所述主节点生成第一任务线程,并通过所述第一任务线程将所述任务队列中的所述并行任务分发至所述至少两个从属节点中。
165.在一些实施方式中,所述并行数据处理装置,还包括:第三处理子模块、第四处理子模块和第五执行子模块。其中,第三处理子模块用于所述至少两个从属节点各自的主线程启动任务队列,并创建第一子线程持续接受来自于主节点的并行任务;第四处理子模块用于所述主线程创建用于处理所述并行任务的自定义任务池,并将所述并行任务分发至经过初始化并开启jta事务的第二子线程中;第五执行子模块用于所述主线程接收所述第二子线程对所述并行任务的处理结果,并向所述主节点发送所述处理结果。
166.为解决上述技术问题,本发明实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
167.如图9所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种并行数据处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种并行数据处理方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
168.本实施方式中处理器用于执行图8中推举模块110、处理模块120、运行模块130和执行模块140的具体功能,存储器存储有执行上述模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有并行数据处理装置中执行所有子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
169.计算机设备在多计算节点系统中,通过推选的方式从多个计算节点中筛选出主节点和从属节点,由主节点接收目标数据,并对目标数据进行统一的调度和任务拆分,然后,将拆分后的并行数据分别下发至各个从属节点中。由从属节点对并行任务进行运算并得到多个处理结果,主节点对多个处理结果进行合并生成目标节点的处理结果后,将总的处理结果发送至对应的目标终端。能够通过主节点对从属节点进行统一的任务分配,实现并行数据的高效自动化处理。
170.本发明还提供一种计算机存储介质,计算机可读指令被一个或多个处理器执行
时,使得一个或多个处理器执行上述任一实施例并行数据处理方法的步骤。
171.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)等非易失性存储介质,或随机存储记忆体(random access memory,ram)等。
172.本技术领域技术人员可以理解,本技术中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本技术中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本技术中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
173.以上所述仅是本技术的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
再多了解一些

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

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

相关文献