掌桥专利:专业的专利平台
掌桥专利
首页

一种数据处理方法、装置、设备、系统和存储介质

文献发布时间:2023-06-19 11:08:20


一种数据处理方法、装置、设备、系统和存储介质

技术领域

本发明涉及数据处理技术领域,尤其涉及一种数据处理方法、装置、设备、系统和存储介质。

背景技术

Spark是一种分布式集群计算平台。Driver(驱动器)是Spark中运行的应用(Application),用于对整个流程进行协调和管理;Executor(执行器)是Spark的执行器,是为某个Application运行在worker node(工作节点)上的一个进程。

在使用Spark大数据平台处理数据时,需要对某个变量进行实时累加计算,并根据累加结果对该变量执行不同的处理。在这个过程中,驱动器将变量的初始值分配到每个执行器,而后由每个执行器对变量的值进行累加。

由于分布式处理结构的限制,在这种方式中,执行器只能根据自身对某个变量的累加值进行处理,从而导致执行器的处理结果不准确。

发明内容

本发明实施例提供一种数据处理方法、装置、设备、系统和存储介质,以解决执行器的处理结果不准确的问题。

第一方面,本发明实施例提供了一种数据处理方法,应用于Spark中的执行器,所述执行器为至少一个,所述方法包括:

从分布式累加器获取目标变量的累加值,其中,所述累加值是所述分布式累加器根据Spark中的执行器发送的累加信息获得的;

判断所述累加值是否满足预设条件,得到判断结果;

根据所述判断结果确定处理方式。

第二方面,本发明实施例还提供一种数据处理方法,应用于分布式累加器,包括:

向Spark中的执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的。

第三方面,本发明实施例还提供一种数据处理装置,应用于Spark中的执行器,包括:

获取模块,用于从分布式累加器获取目标变量的累加值,其中,所述累加值是所述分布式累加器根据Spark中的执行器发送的累加信息获得的;

判断模块,用于判断所述累加值是否满足预设条件,得到判断结果;

处理模块,用于根据所述判断结果确定处理方式。

第四方面,本发明实施例还提供一种数据处理装置,应用于分布式累加器,包括:

发送模块,用于向Spark中的执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的。

第五方面,本发明实施例还提供一种电子设备,包括:收发器、存储器、处理器及存储在存储器上并可在处理器上运行的程序,所述收发器用于在所述处理器的控制下接收和发送数据,所述处理器执行所述程序时实现如上所述的数据处理方法中的步骤。

第六方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的数据处理方法中的步骤。

第七方面,本发明实施例还提供一种数据处理系统,包括:Spark中的执行器,分布式累加器;

所述分布式累加器,用于向所述执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的;

所述执行器,用于从分布式累加器获取所述目标变量的累加值,判断所述累加值是否满足预设条件,得到判断结果;根据所述判断结果确定处理方式。

在本发明实施例中,Spark中的执行器可从分布式累加器获得目标变量的累加值,而该累加值是分布式累加器根据从Spark中的执行器获得的累加信息得到的。也就是说,在本发明实施例的方案中,执行器在处理过程中所用到的累加值并不是自身的累加值,而是根据各个执行器的累加信息获得的累加值。因此,利用本发明实施例的方案可提高执行器处理结果的准确性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的数据处理方法的流程图之一;

图2是本发明实施例提供的数据处理方法的流程图之二;

图3是本发明实施例提供的数据处理系统的结构图之一;

图4是本发明实施例提供的数据处理系统的结构图之二;

图5是本发明实施例提供的数据处理系统中数据交互的示意图;

图6是本发明实施例提供的数据处理装置的结构图之一;

图7是本发明实施例提供的数据处理装置的结构图之二;

图8是本发明实施例提供的电子设备的结构图之一;

图9是本发明实施例提供的电子设备的结构图之二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1,图1是本发明实施例提供的数据处理方法的流程图,应用于Spark的执行器,所述执行器为至少一个,如图1所示,包括以下步骤:

步骤101、获取目标变量的累加值,其中,所述累加值是分布式累加器根据Spark中的执行器发送的累加信息获得的。

在本发明实施例中,分布式累加器是一种以key(关键值)-value(值)作为内存存储方式的软件组件,该组件用于实现对value值变更的原子操作。也就是说,分布式累加器可根据key查找到对应的value并对其进行操作,如累加,减少等。所述累加信息例如可以是执行器的处理结果,执行器获得的某个变量的变化值等。

在本发明实施例中,为了均衡分布式累加器的处理,避免出现均衡分布式累加负载过重的问题,执行器可通过累加器连接装置向所述分布式累加器发送累加请求,并接收所述分布式累加器通过所述累加器连接装置发送的所述累加值。

在此,所述执行器可以是Spark中的任一执行器。

步骤102、判断所述累加值是否满足预设条件,得到判断结果。

步骤103、根据所述判断结果确定处理方式。

在本发明实施例中,所述预设条件可以是某个设定值。不同的执行器的预设条件可以相同,也可不同。对于某个执行器来说,它是将获得的累加值和它所对应的预设条件进行判断,得到判断结果,并根据判断结果进行相应的处理。也就是说,各个执行器的判断并确定处理方式的过程是相对独立的。

例如,如果每一个执行器的预设条件是不同的,则满足预设条件的执行器结束进程,不满足预设条件的执行器则可继续进程。如果各个执行器的预设条件是一致的,则当前的执行器结束进程,其他的执行器会继续获取累加值,并在满足预设条件的情况下结束进程。

不同的执行器可执行不同的功能,根据所执行功能的不同,在此可有不同的处理方式。以金融行业的放款为例,假设日累计放款额为A。在放款过程中,各执行器可从分布式累加器获得累加值,并将获得的累加值和A进行比较。如果累加值小于A,则各个累加器可将获得的累加信息发送给分布式累加器,由分布式累加器根据累加信息进行累加,获得累加值;如果累计值大于或等于A,则执行器可停止处理,也即判断需停止放款。

由于分布式累加器的累加值在处理的过程中被各个执行器共享,也就是说,各个执行器可实时的获得累加值,而无需等待所有数据都处理完毕才获得累加值,因此,各个执行器可根据累加值做实时的判断,并适时释放执行器的资源,从而提高执行器的利用率。

此外,在上述实施例的基础上,执行器还可获得所述目标变量的累加信息,并向所述分布式累加器发送所述目标变量的累加信息。在实际应用中,执行器通过累加器连接装置向所述分布式累加器发送所述累加信息。其中,所述累加信息可以是执行器的处理结果等。通过这种方式,可使得分布式累加器不断的更新目标变量的累加值,从而提高处理的准确性。

在本发明实施例中,Spark中的执行器可从分布式累加器获得目标变量的累加值,而该累加值是分布式累加器根据从Spark中的执行器获得的累加信息得到的。也就是说,在本发明实施例的方案中,执行器在处理过程中所用到的累加值并不是自身的累加值,而是根据各个执行器的累加信息获得的累加值。因此,利用本发明实施例的方案可提高执行器处理结果的准确性。

参见图2,图2是本发明实施例提供的数据处理方法的流程图,应用于分布式累加器,如图2所示,包括以下步骤:

步骤201、向Spark的执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的。

在实际应用中,分布式累加器可响应于执行器的请求而发送所述累加值。具体的,分布式累加器可接收所述执行器通过累加器连接装置发送的累加请求,并根据所述累加请求,确定所述目标变量的关键值Key。然后,根据所述目标变量的关键值,获得所述目标变量的累加值。最后,通过所述累加器连接装置向所述执行器发送所述目标变量的累加值。

分布式累加器是以key-value的形式进行数据存储的。因此,当执行器发送了用于获取目标变量的累加值的累加请求时,分布式累加器可根据该累加请求确定出目标变量的key。然后,根据自身存储的数据,获得对应的value。对于返回给执行器的value,是分布式累加器在当前时刻获得的对目标变量的最终的累加值。因此,执行器可根据该累加值进行处理,并准确的获得处理结果。

在上述实施例的基础上,分布式累加器还可根据执行器上报的累加信息更新存储的累加值。具体的,分布式累加器还可接收所述执行器通过累加器连接装置发送的所述目标变量的累加信息,并根据所述累加信息和存储的所述目标变量的累加值,更新所述目标变量的累加值。例如,可根据执行器上报的累加信息对目标变量的value进行累加,减少等。

此外,为了便于Spark对数据的集中管理,分布式累加器还可向所述Spark中的驱动器发送所述目标变量的最终累加值。

在本发明实施例中,Spark中的执行器可从分布式累加器获得目标变量的累加值,而该累加值是分布式累加器根据从Spark中的执行器获得的累加信息得到的。也就是说,在本发明实施例的方案中,执行器在处理过程中所用到的累加值并不是自身的累加值,而是根据各个执行器的累加信息获得的累加值。因此,利用本发明实施例的方案可提高执行器处理结果的准确性。

参见图3,图3是本发明实施例提供的数据处理系统的示意图。如图3所示,所述系统可包括:位于Spark的执行器301,以及分布式累加器302。所述执行器为至少一个。

其中,所述分布式累加器302,用于向所述执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的;所述执行器301,用于从分布式累加器获取所述目标变量的累加值,判断所述累加值是否满足预设条件,得到判断结果;根据所述判断结果确定处理方式。

此外,如图4所示,所述系统还可包括:位于Spark的驱动器303,用于向所述分布式累加器发送目标变量的初始化值,并从所述分布式累加器获得所述目标变量的最终累加值。此外,所述驱动器还用于启动执行器。

在图4所示的系统中,驱动器启动时,初使化变量到分布式累器。驱动器启动完完成后,通过资源分配启动执行器。执行器在处理数据过程中调用分布式累加器对初使化变量进行累加,调用完成后分布式累加器同步返回累加器的变量值。各执行器在处理过程中可以对返回的变量值进行实时判断,并进行相应的处理。各执行器处理完所有数据后,驱动器从分布式累加器同步获取累加器的变量值,并销毁累加器变量。

在本发明实施例的系统中,单个执行器内不再进行累加,而使用分布式累加器累加,从而执行器可获得最终的累加值,提高了数据处理的效率和准确性。

其中,如图5所示,各执行器是通过累加器连接池和分布式累加器进行交互的。其中,累加器连接池是驱动器配置给各执行器的资源,各个执行器可共享该资源。各执行器可形成数据处理模块,处理各个算子计算处理能力,并在需要累加计算时发起调用累加变量的请求。累加器连接池作为执行器和分布式累加器之间的桥量,用于调度管理分布式累加器的连接资源和转发调用请求。具体的,累加器连接池接收各执行器的调用请求,并对调用请求进行缓冲处理;在接收到分布式累加器返回的累加值后,将各累加值返回给对应的执行器。分布式累加器是处理容器,使用key-value方式内存存储变量,原子操作value值的增加、减少。

在本发明实施例的系统中,在Spark平台处理过程中各执行器的变量可实现共享,并降低了执行器间处理的相互影响,提高了执行器的处理效率。同时,由于各执行器可以有效的共享变量及数据,因此,各执行器可对后续的数据处理方式做实时调整,提高数据使用效率。

本发明实施例还提供了一种数据处理装置,应用于Spark中的执行器。参见图6,图6是本发明实施例提供的数据处理装置的结构图。由于数据处理装置解决问题的原理与本发明实施例中数据处理方法相似,因此该数据处理装置的实施可以参见方法的实施,重复之处不再赘述。

如图6所示,数据处理装置600包括:获取模块601,用于从分布式累加器获取目标变量的累加值,其中,所述累加值是所述分布式累加器根据Spark中的执行器发送的累加信息获得的;判断模块602,用于判断所述累加值是否满足预设条件,得到判断结果;处理模块603,用于根据所述判断结果确定处理方式。

可选的,所述获取模块601可包括:发送子模块,用于通过累加器连接装置向所述分布式累加器发送累加请求;接收子模块,用于接收所述分布式累加器通过所述累加器连接装置发送的所述累加值。

可选的,所述装置还可包括:第二获取模块,用于获得所述目标变量的累加信息;发送模块,用于向所述分布式累加器发送所述目标变量的累加信息。

可选的,所述发送模块具体用于,通过累加器连接装置向所述分布式累加器发送所述累加信息。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

本发明实施例还提供了一种数据处理装置,应用于分布式累加器。参见图7,图7是本发明实施例提供的数据处理装置的结构图。由于数据处理装置解决问题的原理与本发明实施例中数据处理方法相似,因此该数据处理装置的实施可以参见方法的实施,重复之处不再赘述。

如图7所示,数据处理装置700包括:发送模块701,用于向Spark中的执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的。

可选的,所述发送模块701可包括:

接收子模块,用于接收所述执行器通过累加器连接装置发送的累加请求;确定子模块,用于根据所述累加请求,确定所述目标变量的关键值;获取子模块,用于根据所述目标变量的关键值,获得所述目标变量的累加值;发送子模块,用于通过所述累加器连接装置向所述执行器发送所述目标变量的累加值。

可选的,所述装置还可包括:接收模块,用于接收所述执行器通过累加器连接装置发送的所述目标变量的累加信息;更新模块,用于根据所述累加信息和存储的所述目标变量的累加值,更新所述目标变量的累加值。

可选的,所述发送模块还用于,向所述Spark中的驱动器发送所述目标变量的最终累加值。

本发明实施例提供的装置,可以执行上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。

本发明实施例还提供了一种电子设备,应用于Spark中的执行器。如图8所示,本发明实施例的电子设备,包括:处理器800,用于读取存储器820中的程序,执行下列过程:

从分布式累加器获取目标变量的累加值,其中,所述累加值是所述分布式累加器根据Spark中的执行器发送的累加信息获得的;

判断所述累加值是否满足预设条件,得到判断结果;

根据所述判断结果确定处理方式。

收发器810,用于在处理器800的控制下接收和发送数据。

其中,在图8中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器800代表的一个或多个处理器和存储器820代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器810可以是多个元件,即包括发送机和收发器,提供用于在传输介质上与各种其他装置通信的单元。处理器800负责管理总线架构和通常的处理,存储器820可以存储处理器800在执行操作时所使用的数据。

处理器800负责管理总线架构和通常的处理,存储器820可以存储处理器800在执行操作时所使用的数据。

处理器800还用于读取所述程序,执行如下步骤:

通过累加器连接装置向所述分布式累加器发送累加请求;

接收所述分布式累加器通过所述累加器连接装置发送的所述累加值。

处理器800还用于读取所述程序,执行如下步骤:

获得所述目标变量的累加信息;

向所述分布式累加器发送所述目标变量的累加信息。

本发明实施例还提供了一种电子设备,应用于分布式累加器。如图9所示,本发明实施例的电子设备,包括:处理器900,用于读取存储器920中的程序,执行下列过程:

向Spark中的执行器发送目标变量的累加值,其中,所述累加值是根据Spark中的执行器发送的累加信息获得的。

收发器910,用于在处理器900的控制下接收和发送数据。

其中,在图9中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器900代表的一个或多个处理器和存储器920代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发器910可以是多个元件,即包括发送机和收发器,提供用于在传输介质上与各种其他装置通信的单元。处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。

处理器900负责管理总线架构和通常的处理,存储器920可以存储处理器900在执行操作时所使用的数据。

处理器900还用于读取所述程序,执行如下步骤:

接收所述执行器通过累加器连接装置发送的累加请求;

根据所述累加请求,确定所述目标变量的关键值;

根据所述目标变量的关键值,获得所述目标变量的累加值;

通过所述累加器连接装置向所述执行器发送所述目标变量的累加值。

处理器900还用于读取所述程序,执行如下步骤:

接收所述执行器通过累加器连接装置发送的所述目标变量的累加信息;

根据所述累加信息和存储的所述目标变量的累加值,更新所述目标变量的累加值。

处理器900还用于读取所述程序,执行如下步骤:

向所述Spark中的驱动器发送所述目标变量的最终累加值。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。根据这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

相关技术
  • 一种数据处理方法、装置、系统、电子设备及存储介质
  • 一种数据处理方法、装置、系统、电子设备及存储介质
技术分类

06120112811221