分布式数据处理方法、装置、电子设备及存储介质与流程

文档序号:31125570发布日期:2022-08-13 03:15阅读:115来源:国知局
分布式数据处理方法、装置、电子设备及存储介质与流程

1.本公开涉及数据处理技术领域,尤其涉及一种分布式数据处理方法、装置、电子设备及存储介质。


背景技术:

2.随着移动互联网技术的不断发展,每天都会产生海量的数据。对于数量级别较大的待处理数据,通常采用分布式迭代处理的方式,对待处理数据进行处理,从而得到期望得到的数据处理结果。
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.图1示出了本公开实施例提供的一种通信系统的结构示意图;
28.图2示出了本公开实施例提供的一种分布式数据处理系统的结构示意图;
29.图3示出了本公开实施例提供的一种分布式数据处理方法的流程示意图;
30.图4示出了本公开实施例提供的一种分布式数据处理方法的流程示意图;
31.图5示出了本公开实施例提供的一种分布式数据处理方法的流程示意图;
32.图6示出了本公开实施例提供的一种分布式数据处理方法的流程示意图;
33.图7示出了本公开实施例提供的一种分布式数据处理装置的结构示意图;
34.图8示出了本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
35.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
36.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
37.还应当理解的是,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其他特征、整体、步骤、操作、元素和/或组件的存在或添加。
38.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息、用户行为信息等)和数据(包括但不限于动态页面对应的页面数据等),均为经用户授权或者经过各方充分授权的数据。
39.随着移动互联网技术的不断发展,每天都会产生海量的数据。对于数量级别较大的待处理数据,通常采用分布式迭代处理的方式,对待处理数据进行处理,从而得到期望得到的数据处理结果。
40.相关技术中,采用基于spark的分布式数据处理系统(以下简称为分布式数据处理系统),对上述待处理数据进行处理。该分布式数据处理系统包括驱动节点、多个处理节点和配置节点,驱动节点接收到包括多个待处理数据spark作业时,根据spark作业生成对应的driver进程,driver进程用于向配置节点请求处理上述spark作业所需要的资源,配置节点根据该请求在分布式的多个处理节点上启动一定数量的executor进程,其中,配置节点可以为集群管理器。然后,驱动节点通过driver进程对spark作业进行拆分,并分发给每个启动executor进程的处理节点,处理节点通过executor进程处理待处理数据。对于每个处理节点,通常通过迭代处理的方式处理数据,每轮迭代分别对符合当前轮次的预设条件的待处理数据进行处理,不符合当前轮次的预设条件的待处理数据将进入到下一轮次,直至对所有待处理数据处理完成。
41.然而,由于每轮迭代的时长相对固定,且当经过多轮次的迭代处理之后,剩余的待处理数据的量级较小,继续通过迭代处理的方式来处理剩余的待处理数据,存在处理成本高、效率低的问题。尤其,在一些场景中,数量级较高的待处理数据呈长尾式偏态分布,即待处理数据分属于数量较多的不同维度,但每个维度的数据的数量较少,这样一来,即使待处理数据的数量较少,仍需要进行多轮次迭代计算,造成数据处理资源的浪费,处理时长较长,严重影响处理效率。
42.相关技术中,通常通过spark的checkpoint机制避免执行计划过长的问题,但涉及到对系统代码进行修改,具有一定的性能开销,同时还通过对待处理数据进行提前截取,以减少几轮迭代处理后的剩余待处理数据的数量,这种方法会导致损失一部分待处理数据,导致数据处理结果的准确性降低。
43.基于此,本公开实施例提供了一种分布式数据处理方法,包括:获取多个待处理数据。将多个待处理数据分发给多个处理节点,以使得各处理节点对分发到的待处理数据进
行迭代处理,得到包含每轮次迭代处理结果的第一处理结果。当各处理节点上的剩余待处理数据的数量满足预设条件时,获取各处理节点上的剩余待处理数据。对各个剩余待处理数据进行并行处理,得到第二处理结果。根据各处理节点得到的第一处理结果和第二处理结果,得到针对多个待处理数据的目标处理结果。
44.由于处理节点对待处理数据进行多轮迭代处理后,剩余的待处理数据的虽然数量较少,但仍需要将其划分为多个维度,进行多轮次的迭代处理,且每轮次迭代处理所需要消耗的时间相对固定,因此存在处理时间长,处理效率低的问题。同时,由于每轮次处理的剩余待处理数据的数量较少,导致处理节点上的大部分资源都处于空闲状态,造成处理资源的浪费。基于此,本公开在剩余待处理数据的数量满足预设条件的情况下,将剩余的待处理数据通过驱动节点进行一次性并行处理,能够节约处理资源,提升处理效率。
45.以下对本公开实施例提供的分布式数据处理方法的应用场景进行示例性说明:
46.图1为本公开实施例提供的一种通信系统示意图,如图1所示,该通信系统中可以包括:服务器110、终端设备120和分布式数据处理系统130。服务器110可以通过有线网络或无线网络与终端设备120和分布式数据处理系统130之间建立连接。
47.其中,服务器110,可以用于为终端设备120上安装的应用程序提供服务,以使得终端设备120上的应用程序实现对应的功能,同时服务器110还用于获取终端设备在运行应用程序过程中产生的大量数据,并将产生的数据作为待处理数据,发送给分布式数据处理系统130进行处理。一些实施例中,服务器110是由多个服务器(或者微服务器)构成的分布式集群。
48.终端设备120,可以用于装载不同的应用程序,同时在应用程序运行过程中,存储产生的大量的待处理数据,向上述待处理数据至服务器110,该待处理数据可以用于经过分布式数据处理系统130处理后得到终端设备120的处理结果。
49.一些实施例中,终端设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,pda)、增强现实(augmented reality,ar)\虚拟现实(virtual reality,vr)设备等可以安装并使用各类应用程序(如快手)的设备,本公开对该终端的具体形态不做特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
50.分布式数据处理系统130用于接收来自服务器110的待处理数据,并对该待处理数据进行处理,得到对应的处理结果,并将处理结果返回给服务器110。
51.可选地,上述图1所示的通信系统中服务器110可以与至少一个终端设备120连接。本公开对终端设备120的数量及类型均不作限制。
52.本公开实施例提供的分布式数据处理方法可以应用于前述图1所示的分布式数据处理系统130,也可以应用于其他电子设备。
53.在另一些实现方式中,本公开提供的分布式数据处理方法的执行主体可以为分布式数据处理装置,分布式数据处理装置可以内置在电子设备中,分布式数据处理装置也可以是独立的装置。
54.图2为本公开示例性示出的一种分布式数据处理系统示意图,如图2所示,该分布式数据处理系统130中包括配置驱动节点131、配置节点132和多个处理节点133。
55.其中,驱动节点131用于获取到多个待处理数据,根据多个待处理数据向配置节点132请求处理上述待处理数据所需的处理资源,以使得配置节点132确定多个处理节点133,并为多个处理节点133分配资源。驱动节点131还用于将上述多个待处理数据进行拆分,并将拆分后的待处理数据发送给多个处理节点133,各处理节点对分发到的待处理数据进行多轮次迭代处理,得到包含每轮次处理结果的第一处理结果。在上述分布式数据处理系统是基于spark的分布式框架的情况下,驱动节点131具体为运行driver进程的节点。
56.驱动节点131,还用于在处理节点133上的剩余待处理数据的数量满足预设阈值的情况下,将各处理节点133中的剩余待处理数据取回,进行一次性并行处理,得到对应的第二处理结果。
57.配置节点132,用于根据驱动节点131发送的请求,确定多个处理节点133,以对上述多个待处理数据进行分布式处理。在上述分布式数据处理系统是基于spark的分布式框架的情况下,配置节点132具体为集群管理器。各个处理节点133,用于接收驱动节点131分发的待处理数据,并对待处理数据进行迭代处理,得到对应的处理结果。还用于在剩余待处理数据的数量满足预设条件的情况下,将剩余待处理数据返回给驱动节点131。在上述分布式数据处理系统是基于spark的分布式框架的情况下,处理节点133用于运行executor进程。
58.在一些实现方式中,上述分布式数据处理系统130还包括存储节点134,用于存储处理节点133得到的第一处理结果和驱动节点131得到的第二处理结果。在一种实现方式中,存储节点134通过分布式文件存储技术进行存储。
59.图3为本公开实施例提供的一种分布式数据处理方法流程图,如图3所示,当分布式数据处理方法应用于上述驱动节点131时,该分布式数据处理方法可以包括:
60.s301、获取多个待处理数据。
61.上述待处理数据为用户对象在终端设备上使用目标应用程序而产生的数据。多个待处理数据包括在同一终端设备上以不同用户账户登录目标应用程序时产生的数据,还可以包括在不同终端设备上以同一用户账户登录目标应用程序所产生的数据。
62.s302、将多个待处理数据分发给多个处理节点,以使得各处理节点对分发到的待处理数据进行迭代处理,得到包含每轮次迭代处理结果的第一处理结果。
63.在一种实现方式中,将多个待处理数据进行拆分,并将拆分后的多组待处理数据分别发送给不同的处理节点,处理节点对接收到的待处理数据进行迭代处理。其中,迭代处理可以理解为,对待处理数据进行多轮次处理,每一轮次分别对应不同的预设条件,当待处理数据满足当前轮次的预设条件时,则在当前轮次中被处理。当待处理数据不满足当前轮次的预设条件时,则将在后续轮次中被处理。在待处理数据的数据量较大的情况下,通过迭代处理能够有效提升处理效率,节约处理时间。
64.s303、当各处理节点上的剩余待处理数据的数量满足预设条件时,获取各处理节点上的剩余待处理数据。
65.在一种实现方式中,spark框架中包括用于确定数据数量的预设方法和用于获取待处理数据的方法,例如,确定数据数量的预设方法可以为count方法,获取待处理数据的方法可以为collect方法。驱动节点通过调用count方法来确定每一轮次迭代处理后的各处理节点的剩余待处理数据的数量。在剩余待处理数据的数量满足预设条件时,驱动节点通
过调用collect方法将各处理节点中的剩余待处理数据汇集到驱动节点上。
66.s304、对各个剩余待处理数据进行并行处理,得到第二处理结果。
67.s305、根据各处理节点得到的第一处理结果和第二处理结果,得到针对多个待处理数据的目标处理结果。
68.由于处理节点对待处理数据进行多轮迭代处理后,剩余的待处理数据的虽然数量较少,但仍需要将其划分为多个维度,进行多轮次的迭代处理,且每轮次迭代处理所需要消耗的时间相对固定,因此存在处理时间长,处理效率低的问题。同时,由于每轮次处理的剩余待处理数据的数量较少,导致处理节点上的大部分资源都处于空闲状态,造成处理资源的浪费。基于此,本公开在剩余待处理数据的数量满足预设条件的情况下,将剩余的待处理数据通过驱动节点进行一次性并行处理,能够节约处理资源,提升处理效率。
69.在一些实现方式中,预设条件为各处理节点上的剩余待处理数据的数量的总和小于预设阈值。
70.示例性的,处理节点a经过5轮迭代处理后,此时剩余待处理数据的数量为200,处理节点b经过5轮迭代处理后,此时剩余待处理数据的数量为100,处理节点c经过5轮迭代处理后,此时剩余待处理数据的数量为300。当预设阈值为1000时,此时三个处理节点剩余待处理数据的数量的总和为600,小于预设阈值1000,此时各处理节点上的剩余待处理数据的数量满足预设条件。
71.由上述可知,提供了一种限定各处理节点的剩余待处理数据的数量的具体实现方式,通过设置预设条件,在各处理节点的剩余待处理数据的数量的加和小于预设阈值的情况下,驱动将各处理节点的剩余待处理数据取回后,进行一次性并行处理,有效节约数据处理资源,提升处理效率。
72.在另一些实现方式中,预设条件为各处理节点上的剩余待处理数据的数量均小于预设阈值。
73.示例性的,处理节点a经过5轮迭代处理后,此时剩余待处理数据的数量为200,处理节点b经过5轮迭代处理后,此时剩余待处理数据的数量为100,处理节点c经过5轮迭代处理后,此时剩余待处理数据的数量为300,当预设阈值为400时,此时三个处理节点剩余待处理数据的数量均小于预设阈值400,此时各处理节点上的剩余待处理数据的数量满足预设条件。
74.由上述可知,提供了一种限定各处理节点的剩余待处理数据的数量的具体实现方式,通过设置预设条件,在各处理节点的剩余待处理数据的数量均小于预设阈值的情况下,驱动将各处理节点的剩余待处理数据取回后,进行一次性并行处理,有效节约数据处理资源,提升处理效率。
75.在一些实现方式中,预设阈值根据驱动节点预设的内存容量和各处理节点预设的剩余数据数量确定的,其中,各处理节点预设的剩余数据数量,是指所述处理节点执行的历史迭代处理过程进行到目标轮次后收敛速度小于预设收敛速度时的剩余待处理数据数量。
76.上述实现方式中,通过驱动节点预设的内存容量和各处理节点预设的剩余待处理数据的数量确定,原因在于:一方面,由于驱动节点的内存容量是有限的,若预设阈值设置过高,剩余待处理数据的数量过高,导致驱动节点出现内存溢出的问题。另一方面,由于当待处理数据的量级较大时,通过并行处理并不能减少处理时间,因此通过迭代处理的方式,
对数据量较大的待处理数据,更能够有效节约处理时长,提升处理效率。当待处理数据的量级较小时,通过迭代处理仍需要经过多个轮次,且每个轮次的处理时长相对固定,此时通过将量级较小的待处理数据进行并行处理,能够有效节约资源,提升处理效率。
77.由上述可知,提供了一种确定预设阈值的具体实现方式,通过驱动节点预设的内存容量和各处理节点预设的剩余待处理数据的数量两方面因素确定的预设阈值,能够在待处理数据的数量量级较大的情况下,通过迭代处理,在待处理数据的数量量级较小的情况下,通过并行处理,有效节约处理资源,减少处理时长,提升处理效率。
78.在一些实现方式中,参见图4,上述s303,具体包括以下步骤:
79.s401、当各处理节点上的剩余待处理数据的数量满足预设条件时,根据各处理节点上的剩余待处理数据的数量,确定并行处理剩余待处理数据所需的第一内存容量。
80.s402、在第一内存容量小于第二内存容量的情况下,获取各处理节点上的剩余待处理数据。
81.在上述实现方式中,处理剩余待处理数据需要消耗内存容量,获取各处理节点上的剩余待处理数据的数量之前,需要确认处理各处理节点上的剩余待处理数据所需的内存容量,在各处理节点上的剩余待处理数据所需的内存容量小于驱动节点预先设置的内存容量的情况下,从各处理节点上获取剩余待处理数据。
82.示例性的,在各处理节点完成一轮次的迭代处理之后,各处理节点上的剩余待处理数据所需的内存容量为10gb,此时预先设置的内容容量为12gb,此时各处理节点上的剩余待处理数据所需的内存容量小于驱动节点预先设置的内存容量,此时获取各处理节点上的剩余待处理数据。
83.由上述可知,通过确定各处理节点上的剩余待处理数据所需的内存容量,能够避免各处理节点上的剩余待处理数据所需的内存容量超过预先设置的内存容量,导致出现内存溢出的问题。
84.在一些实现方式中,分布式数据处理系统还包括配置节点,参见图5,上述s303,还包括:
85.s501、在第一内存容量大于或者等于第二内存容量的情况下,向配置节点发送内存调节请求,以请求配置节点调节第二内存容量,以使得第一内存容量小于第二内存容量。
86.s502、当配置节点对第二内存容量调节完成时,获取各处理节点上的剩余待处理数据。
87.在上述实现方式中,在各处理节点上的剩余待处理数据所需的内存容量大于驱动节点预先设置的内存容量的情况下,向配置节点发送内存调节请求,以使得驱动节点的内存容量进行调节后,大于各处理节点上的剩余待处理数据所需的内存容量,当完成调节后,从各处理节点上获取剩余待处理数据。在上述分布式数据处理系统是基于spark的分布式框架的情况下,通过设置spark的参数实现对驱动节点的内存容量进行调节。
88.示例性的,在各处理节点完成一轮次的迭代处理之后,各处理节点上的剩余待处理数据所需的内存容量为12gb,此时预先设置的内容容量为10gb,此时各处理节点上的剩余待处理数据所需的内存容量大于驱动节点预先设置的内存容量,此时向配置节点发送请求,配置节点将驱动节点的内存容量调节为12gb后,获取各处理节点上的剩余待处理数据。
89.由上述可知,通过确定各处理节点上的剩余待处理数据所需的内存容量,在各处
理节点上的剩余待处理数据所需的内存容量大于预先设置的内存容量的情况下,通过对内存容量进行调节,能够避出现内存溢出的问题。
90.在一些实现方式中,参见图6,上述s305步骤,具体包括:
91.s601、将第一格式的剩余待处理数据进行格式转换,得到第二格式的剩余待处理数据,第一格式是指与迭代处理匹配的数据格式,第二格式是指与并行处理匹配的数据格式。
92.s602、对第二格式的剩余待处理数据进行并行处理,得到第二处理结果。
93.示例性的,第一格式可以为dataset[row]格式,即待处理数据以行的格式进行排列,第二格式可以为dataset[t]格式,即待处理数据以表示的形式进行排列,dataset[row]格式便于各处理节点进行迭代处理,不利于驱动节点进行并行处理,因此dataset[row]格式为与迭代处理匹配的数据格式,dataset[t]格式便于驱动节点进行并行处理,因此dataset[t]格式为与迭代处理匹配的数据格式。
[0094]
由上述可知,通过对来自各处理节点的待处理数据进行格式转换,转换为适合并行处理的格式,能够便于驱动节点进行处理,提升处理效率。
[0095]
在一些实现方式中,驱动节点可以与配置节点为同一节点,也可以为分布式系统中的任一用于运行driver进程的节点,此处不予限制。
[0096]
可以理解的,在实际实施时,本公开实施例的终端/服务器可以包含有用于实现前述对应分布式数据处理方法的一个或多个硬件结构和/或软件模块,这些执行硬件结构和/或软件模块可以构成一个电子设备。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本公开能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
[0097]
基于这样的理解,本公开实施例还对应提供一种分布式数据处理装置,可以应用于电子设备。
[0098]
图7示出了本公开实施例提供的分布式数据处理装置的结构示意图。如图7所示,该分布式数据处理装置可以包括:第一数据获取单元701、数据分发单元702、第二数据获取单元703、数据处理单元704和结果确定单元705,第一数据获取单元701,被配置为执行获取多个待处理数据,例如,用于执行上述方法中的步骤s301。数据分发单元702,被配置为执行将多个待处理数据分发给多个处理节点,以使得各处理节点对分发到的待处理数据进行迭代处理,得到包含每轮次迭代处理结果的第一处理结果,例如,用于执行上述方法中的步骤s302。第二数据获取单元703,被配置为执行当各处理节点上的剩余待处理数据的数量满足预设条件时,获取各处理节点上的剩余待处理数据,例如,用于执行上述方法中的步骤s303。数据处理单元704,被配置为执行对各个剩余待处理数据进行并行处理,得到第二处理结果,例如,用于执行上述方法中的步骤s304。结果确定单元705,被配置为执行根据各处理节点得到的第一处理结果和第二处理结果,得到针对多个待处理数据的目标处理结果,例如,用于执行上述方法中的步骤s305。
[0099]
可选的,预设条件为各处理节点上的剩余待处理数据的数量的总和小于预设阈值。
erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
[0112]
其中,存储器803用于存储执行本公开方案的应用程序代码,并由处理器801来控制执行。处理器801用于执行存储器803中存储的应用程序代码,从而实现本公开方法中的功能。
[0113]
在具体实现中,作为一种实施例,处理器801可以包括一个或多个cpu,例如图8中的cpu0和cpu1。
[0114]
在具体实现中,作为一种实施例,电子设备可以包括多个处理器,例如图8中的处理器801和处理器805。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
[0115]
在具体实现中,作为一种实施例,电子设备还可以包括输入设备806和输出设备807。输入设备806和输出设备807通信,可以以多种方式接受用户的输入。例如,输入设备806可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备807和处理器801通信,可以以多种方式来显示信息。例如,输出设备801可以是液晶显示器(liquid crystal display,lcd),发光二极管(light emitting diode,led)显示设备等。
[0116]
本领域技术人员可以理解,图8中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0117]
本公开实施例还提供一种电子设备。该电子设备可以是分布式数据处理装置。该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器和一个或一个以上的存储器。其中,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的分布式数据处理方法。当然,该电子设备还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该电子设备还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0118]
本公开还提供了一种包括指令的计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的分布式数据处理方法。例如,计算机可读存储介质可以为包括指令的存储器803,上述指令可由终端的处理器801执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器,上述指令可由电子设备的处理器执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。
[0119]
本公开还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述分布式数据处理方法。
[0120]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或
者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0121]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1