CN110659111A - 数据处理方法及系统 - Google Patents
数据处理方法及系统 Download PDFInfo
- Publication number
- CN110659111A CN110659111A CN201810695126.3A CN201810695126A CN110659111A CN 110659111 A CN110659111 A CN 110659111A CN 201810695126 A CN201810695126 A CN 201810695126A CN 110659111 A CN110659111 A CN 110659111A
- Authority
- CN
- China
- Prior art keywords
- calculation
- data
- computing
- sub
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
Abstract
本发明公开了一种数据处理方法,包括:到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元同步地将进行数据计算处理得到的计算结果发送到与该计算任务对应的汇总计算单元,汇总计算单元进行汇总计算处理即可得到对应该数据计算时间节点的数据计算结果。上述处理过程通过向子计算单元发送数据汇总指令,实现了主动地向各子计算单元索取数据,同时实现了使能各个子计算单元同步地将计算结果发送给汇总计算单元进行汇总计算,有利于保证计算数据完整性和计算准确性,并且,针对每个数据计算时间节点分别得出数据计算结果,可以防止某一时刻数据计算错误导致大范围的数据计算错误。
Description
技术领域
本发明涉及数据处理技术领域,主要涉及对数据计算的处理,尤其涉及一种数据处理方法及系统。
背景技术
由于数据量庞大,基于实时计算的数据处理引擎一般都会采用分布式的架构来进行数据计算。即在数据计算过程中,设置多个子计算单元,每个子计算单元执行部分计算后,将计算结果发送至汇总计算单元,汇总计算单元根据各子计算单元的计算结果进行进一步的计算,得到最终的计算结果输出到数据库。例如图1所示,数据处理引擎采用mapreduce的计算模型,首先在map阶段由各个map对数据进行处理和预计算,然后再到reduce阶段进行汇总,经过汇总后的数据再输出到目标地址(比如数据库),用户需要获取实时数据的时候再从目标地址将数据取出来。
上述数据处理过程可以理解为推送模式的数据处理过程,即数据处理上游将计算好的结果主动发送给下游。这种数据处理过程存在的问题是,由于上游的各个子计算单元并不是同步计算的,各子计算单元的数据处理进度不同,计算结果输出有快有慢,如果在上游的某个子计算单元(如图1中某个map)在某个时间点未能准时计算出数据结果,也就是未能准时将数据计算结果发送给汇总计算单元(如图1中的reduce),那么可能会造成下游的汇总计算单元(如图1中的reduce)在后续一段时间内计算出来的结果一直不正确。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理方法及系统,可以实现提高分布式计算的计算数据完整性和计算准确性。
一种数据处理方法,包括:
当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元将进行数据计算处理得到的计算结果发送到与所述计算任务对应的汇总计算单元;
其中,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,对接收的计算结果进行汇总计算处理,得到所述计算任务在所述数据计算时间节点的数据计算结果。
可选的,所述与所述计算任务对应的汇总计算单元在计算得到所述计算任务在所述数据计算时间节点的数据计算结果后,该方法还包括:
将所述数据计算结果序列化到设定的数据库。
可选的,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,该方法还包括:
判断是否接收到与所述计算任务对应的所有子计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
一种数据处理方法,应用于汇总计算单元,该方法包括:
接收与计算任务对应的子计算单元发送的计算结果;其中,所述子计算单元发送的计算结果由所述子计算单元进行数据计算处理得到,并由所述子计算单元在数据计算时间节点接收到数据汇总指令后发送;
判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或对当前接收的计算结果进行汇总计算处理并标记本次汇总计算结果有误。
一种数据处理方法,应用于子计算单元,该方法包括:
进行数据计算处理;
当接收到数据汇总指令时,将进行数据计算处理得到的计算结果发送到对应的汇总计算单元,使所述汇总计算单元对接收的计算结果进行汇总计算处理,得到数据计算结果。
一种数据处理系统,包括:
子计算单元、调度处理单元、汇总计算单元;
其中,所述子计算单元,用于进行数据计算处理,并且在接收到所述调度处理单元发送的数据汇总指令后,将进行数据计算处理得到的计算结果发送给对应的汇总计算单元;
所述调度处理单元,用于当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令;
所述汇总计算单元,用于接收与所述计算任务对应的子计算单元发送的计算结果,并判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
一种存储介质,所述存储介质上存储有程序,该程序被处理器执行时实现上述的数据处理方法。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述的数据处理方法。
借由上述技术方案,本发明提供的数据处理方法,在到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元同步地将进行数据计算处理得到的计算结果发送到与该计算任务对应的汇总计算单元,汇总计算单元进行汇总计算处理即可得到对应该数据计算时间节点的数据计算结果。上述处理过程通过向子计算单元发送数据汇总指令,实现了主动地向各子计算单元索取数据,同时实现了使能各个子计算单元同步地将计算结果发送给汇总计算单元进行汇总计算,有利于保证计算数据完整性和计算准确性,并且,针对每个数据计算时间节点分别得出数据计算结果,可以防止某一时刻数据计算错误导致大范围的数据计算错误。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据处理引擎的结构示意图;
图2示出了本发明实施例提供的一种数据处理方法的流程示意图;
图3示出了本发明实施例提供的另一种数据处理引擎的结构示意图;
图4示出了本发明实施例提供的另一种数据处理方法的流程示意图;
图5示出了本发明实施例提供的又一种数据处理方法的流程示意图;
图6示出了本发明实施例提供的再一种数据处理方法的流程示意图;
图7示出了本发明实施例提供的一种数据处理系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例技术方案应用于分布式架构的数据处理引擎。分布式架构的数据处理引擎的结构可参见图1所示,之所以称之为分布式架构,主要是因为其对数据的计算处理是分布到多个map进行的,每个map从消息队列Message Queue读取数据完成各自负责的数据计算任务后,将得到的计算结果发送给Reduce进行汇总计算处理,Reduce汇总计算得到的计算结果再存储到数据库Database中。当用户需要计算结果的数据时,直接从Database中读取即可。
在图1所示的数据处理引擎中,各个map可以看做是子计算单元,而Reduce可以看做是汇总计算单元。也就是说,图1所示的分布式数据处理引擎为了加快数据计算速度,设置多个子计算单元分别进行数据计算,再将计算结果汇总到汇总计算单元进行汇总计算最终得到计算结果。这也是现有的分布式架构的数据处理引擎进行实时数据处理的处理方式。
上述数据处理方式可以称之为从数据处理上游到下游的推送式的数据处理过程,即上游的子计算单元计算得到计算结果后,推送给下游的汇总计算单元,然后下游的汇总计算单元再进行汇总计算。上述数据处理方式存在数据处理效率和正确率的问题,即由于多个子计算单元并不是同步开始进行计算的,再加上各个子计算单元的计算能力不同,处理速度不同,因此各个子计算单元分别进行计算处理时,很可能发生计算进度不同的情况。而汇总计算单元又是根据各个子计算单元的计算结果进行汇总计算的,因此,汇总计算单元要想完整地进行后续的汇总计算,就要等待各个子计算单元都完成计算后才能进行,显然会延长整个计算过程的耗时;而如果汇总计算单元为了保证计算速度不等待各个子计算单元都完成计算后再进行后续的汇总计算,则会发生缺少计算数据的情况,导致计算结果产生错误。
本发明实施例公开的数据处理方法,正是为了解决上述的数据处理效率和正确率问题而提出。
参见图2所示,本发明实施例公开的数据处理方法,包括:
当到达数据计算时间节点时,执行步骤S201、向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元将进行数据计算处理得到的计算结果发送到与所述计算任务对应的汇总计算单元;
具体的,数据处理引擎对数据的处理,是以时间为基准进行的,即当到达某一时间节点时,要进行相应的数据计算处理。本发明实施例以数据计算的时间节点为触发条件,对数据处理引擎的数据处理过程进行控制处理。
本发明实施例为数据处理引擎设置任务调度功能,该任务调度功能可以是硬件设置的任务调度处理器所具有的功能,也可以是在数据处理引擎原有处理程序中添加的任务调度处理程序。
本发明实施例在具体配置任务调度功能时,对应计算任务而配置。具体的,对应每一计算任务,配置与之对应的子计算单元、任务调度、以及汇总计算单元。也就是说,子计算单元、任务调度、汇总计算单元的配置,都是围绕某一个计算任务而确定。例如图3所示,假设对于某一计算任务,设置一任务调度,并且设置该计算任务对应数据处理引擎的各个子计算单元map以及其中的汇总计算单元reduce1,则该任务调度在发挥调度功能时,具体是调度各个子计算单元map与汇总计算单元reduce1配合进行数据计算处理。
各个子计算单元针对对应的计算任务,从消息队列中读取数据进行计算处理,并将得到的计算结果进行缓存。在任务调度中设置定时器功能,当计时到达计算任务的数据计算时间节点时,也就是确认应当进行数据汇总计算时,任务调度程序向各个子计算单元分别发送数据汇总指令。该数据汇总指令用于指示各个子计算单元将缓存的计算结果发送给汇总计算单元进行汇总计算处理。例如图3所示,各个map从消息队列Message Queue中读取数据,进行相应计算处理,并将计算得到的计算结果进行缓存。当任务调度程序向各个子计算单元map发送数据汇总指令时,各个map将计算结果发送到汇总计算单元Reduce。其中,各个子计算单元的具体计算过程,与图1中所示的map的具体计算过程相同,本发明实施例不再详细赘述。
需要特别说明的是,当子计算单元在当前数据计算时间节点针对对应的计算任务计算得到计算结果,并且将计算结果发送到汇总计算单元时,具体是发送到与上述计算任务对应的汇总计算单元。
具体的,上述与计算任务对应的汇总计算单元,可以是根据计算任务的不同而设置的多个汇总计算单元,例如图3所示,在数据处理引擎内部配置多个Reduce,分别用于对不同计算任务的数据进行汇总计算处理。也可以是将数据处理引擎中原有的单个汇总计算单元Reduce在不同时间配置为对不同的计算任务的数据进行汇总计算处理。例如在当前时刻,将Reduce配置为对当前时刻的计算任务的数据进行汇总计算处理,计算完毕后将计算结果导出。当到了下一时刻,将Reduce配置为对下一个计算任务的数据进行汇总计算处理,计算完毕后将计算结果导出……
可以理解,上述与计算任务对应的汇总计算单元,可以是配置的多个汇总计算单元中的一个,也可以是占用的单个汇总计算单元,在占用完毕后再释放该汇总计算单元给其它计算任务进行数据计算使用。
S202、与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,对接收的计算结果进行汇总计算处理,得到所述计算任务在所述数据计算时间节点的数据计算结果。
具体的,汇总计算单元在接收到各个子计算单元发送的计算结果后,根据各个子计算单元的计算结果进行进一步的汇总计算处理,得到上述计算任务的,对应上述数据计算时间节点的数据计算结果,即完成了在上述数据计算时间节点的数据计算处理。
汇总计算单元根据各个子计算单元的计算结果进行进一步汇总计算的具体处理过程,与常见的图1中所示的Reduce的计算处理过程相同,本发明实施例不再详细赘述。
通过上述介绍可见,本发明实施例在到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元同步地将进行数据计算处理得到的计算结果发送到与该计算任务对应的汇总计算单元,汇总计算单元进行汇总计算处理即可得到对应该数据计算时间节点的数据计算结果。上述处理过程通过向子计算单元发送数据汇总指令,实现了主动地向各子计算单元索取数据,同时实现了使能各个子计算单元同步地将计算结果发送给汇总计算单元进行汇总计算,有利于保证计算数据完整性和计算准确性,并且,针对每个数据计算时间节点分别得出数据计算结果,可以防止某一时刻数据计算错误导致大范围的数据计算错误。
可选的,在本发明的另一个实施例中,参见图4所示,还公开了与所述计算任务对应的汇总计算单元在计算得到所述计算任务在所述数据计算时间节点的数据计算结果后,还执行步骤:
S403、将所述数据计算结果序列化到设定的数据库。
具体的,汇总计算单元在接收到各个子计算单元发送的计算结果后,对接收的计算结果进行进一步的汇总计算处理,得到对应上述数据计算时间节点的数据计算结果。然后,本发明实施例还设定,汇总计算单元在计算得到对应数据计算时间节点的数据计算结果后,将数据计算结果序列化到数据库,即序列化存储到数据库中。
上述数据库,具体可以是某一段存储地址区域,汇总计算单元在进行汇总计算得出数据计算结果后,数据计算结果上携带本次计算的时间戳,然后根据数据计算结果上的时间戳,将数据计算结果序列化到上述的存储地址中。
当用户需要使用数据计算结果时,直接从上述存储地址,也就是数据库中进行提取即可。一种方便的提取方式是,用户可直接根据数据计算结果的时间戳,从数据库中提取数据。
本实施例中的步骤S401、S402分别对应图2所示的方法实施例中的步骤S201、S202,其具体内容请参见图2所示的方法实施例的内容,此处不再赘述。
可选的,在本发明的另一个实施例中还公开了,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,该方法还包括:
判断是否接收到与所述计算任务对应的所有子计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理。
具体的,在数据处理引擎搭建以及配置任务调度时,是以计算任务为中心而设置的子计算单元、任务调度和汇总计算单元的对应关系。因此,对于某一计算任务来说,其对应的子计算单元、汇总计算单元是确定的,并且对于子计算单元和汇总计算单元来说,在执行某一计算任务时,应当有哪些子计算单元或汇总计算单元来参与也是确定的。
基于上述特性,本发明实施例设定,当汇总计算单元在某一数据计算时间节点接收到子计算单元发送的计算结果时,确定到达汇总计算时间节点,此时汇总计算单元判断是否接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,如果确认接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,则说明已经接收到本次数据计算时间节点下的,对应当前执行的计算任务的所有子计算单元的计算结果,可以继续对所有子计算单元发送的计算结果进行汇总计算处理。
相反,如果经过判断发现没有收到与当前正在执行的计算任务对应的所有子计算单元发送的计算结果,则可以确认当前数据计算时间节点下的计算结果数据不完整,需要进行特殊的处理。
在本发明的另一个实施例中公开了,如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
具体的,如果汇总计算单元在接收到子计算单元发送的计算结果时判断发现并没有接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,则汇总计算单元等待接收所有子计算单元发送的计算结果,直到确认与当前执行的计算任务对应的所有子计算单元都将计算结果发送到汇总计算单元后,在对接收的计算结果进行汇总计算处理。
另一种可选的方式是,为了保证计算速度,即使汇总计算单元判断确认在当前数据计算时间节点并没有接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,依然进行对接收到的计算结果的汇总节点处理,并且标记本次汇总计算结果有误,以便数据处理引擎后台对该有误的汇总计算结果进行筛选或其它相应的特殊处理。
本发明另一实施例还公开了另一种数据处理方法,该方法应用于汇总计算单元,参见图5所示,该方法包括:
S501、接收与计算任务对应的子计算单元发送的计算结果;其中,所述子计算单元发送的计算结果由所述子计算单元进行数据计算处理得到,并由所述子计算单元在数据计算时间节点接收到数据汇总指令后发送;
具体的,对应上述图2所示的数据处理方法,本发明实施例为数据处理引擎设置任务调度功能,该任务调度功能可以是硬件设置的任务调度处理器所具有的功能,也可以是在数据处理引擎原有处理程序中添加的任务调度处理程序。
本发明实施例在具体配置任务调度功能时,对应计算任务而配置。具体的,对应每一计算任务,配置与之对应的子计算单元、任务调度、以及汇总计算单元。也就是说,子计算单元、任务调度、汇总计算单元的配置,都是围绕某一个计算任务而确定。例如图3所示,假设对于某一计算任务,设置一任务调度,并且设置该计算任务对应数据处理引擎的各个子计算单元map以及其中的汇总计算单元reduce1,则该任务调度在发挥调度功能时,具体是调度各个子计算单元map与汇总计算单元reduce1配合进行数据计算处理。
各个子计算单元针对对应的计算任务,从消息队列中读取数据进行计算处理,并将得到的计算结果进行缓存。在任务调度中设置定时器功能,当计时到达计算任务的数据计算时间节点时,也就是确认应当进行数据汇总计算时,任务调度程序向各个子计算单元分别发送数据汇总指令。该数据汇总指令用于指示各个子计算单元将缓存的计算结果发送给汇总计算单元进行汇总计算处理。其中,各个子计算单元的具体计算过程,与图1中所示的map的具体计算过程相同,本发明实施例不再详细赘述。
S502、判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则执行步骤S503、对接收的计算结果进行汇总计算处理,得到数据计算结果。
具体的,上文介绍在数据处理引擎搭建以及配置任务调度时,是以计算任务为中心而设置的子计算单元、任务调度和汇总计算单元的对应关系。因此,对于某一计算任务来说,其对应的子计算单元、汇总计算单元是确定的,并且对于子计算单元和汇总计算单元来说,在执行某一计算任务时,应当有哪些子计算单元或汇总计算单元来参与也是确定的。
基于上述特性,本发明实施例设定,当汇总计算单元在某一数据计算时间节点接收到子计算单元发送的计算结果时,确定到达汇总计算时间节点,此时汇总计算单元判断是否接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,如果确认接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,则说明已经接收到本次数据计算时间节点下的,对应当前执行的计算任务的所有子计算单元的计算结果,可以继续对所有子计算单元发送的计算结果进行汇总计算处理。
相反,如果经过判断发现没有收到与当前正在执行的计算任务对应的所有子计算单元发送的计算结果,则可以确认当前数据计算时间节点下的计算结果数据不完整,需要进行特殊的处理。
在本发明的另一个实施例中公开了,如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
具体的,如果汇总计算单元在接收到子计算单元发送的计算结果时判断发现并没有接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,则汇总计算单元等待接收所有子计算单元发送的计算结果,直到确认与当前执行的计算任务对应的所有子计算单元都将计算结果发送到汇总计算单元后,在对接收的计算结果进行汇总计算处理。
另一种可选的方式是,为了保证计算速度,即使汇总计算单元判断确认在当前数据计算时间节点并没有接收到与当前执行的计算任务对应的所有子计算单元发送的计算结果,依然进行对接收到的计算结果的汇总节点处理,并且标记本次汇总计算结果有误,以便数据处理引擎后台对该有误的汇总计算结果进行筛选或其它相应的特殊处理。
在本发明的另一个实施例中,公开了另一种数据处理方法,该方法应用于子计算单元,参见图6所示,该方法包括:
S601、进行数据计算处理;
当接收到数据汇总指令时,执行步骤S602、将进行数据计算处理得到的计算结果发送到对应的汇总计算单元,使所述汇总计算单元对接收的计算结果进行汇总计算处理,得到数据计算结果。
具体的,本发明实施例为数据处理引擎设置任务调度功能,该任务调度功能可以是硬件设置的任务调度处理器所具有的功能,也可以是在数据处理引擎原有处理程序中添加的任务调度处理程序。
本发明实施例在具体配置任务调度功能时,对应计算任务而配置。具体的,对应每一计算任务,配置与之对应的子计算单元、任务调度、以及汇总计算单元。也就是说,子计算单元、任务调度、汇总计算单元的配置,都是围绕某一个计算任务而确定。例如图3所示,假设对于某一计算任务,设置一任务调度,并且设置该计算任务对应数据处理引擎的各个子计算单元map以及其中的汇总计算单元reduce1,则该任务调度在发挥调度功能时,具体是调度各个子计算单元map与汇总计算单元reduce1配合进行数据计算处理。
各个子计算单元针对对应的计算任务,从消息队列中读取数据进行计算处理,并将得到的计算结果进行缓存。在任务调度中设置定时器功能,当计时到达计算任务的数据计算时间节点时,也就是确认应当进行数据汇总计算时,任务调度程序向各个子计算单元分别发送数据汇总指令。该数据汇总指令用于指示各个子计算单元将缓存的计算结果发送给汇总计算单元进行汇总计算处理。例如图3所示,各个map从消息队列Message Queue中读取数据,进行相应计算处理,并将计算得到的计算结果进行缓存。当任务调度程序向各个子计算单元map发送数据汇总指令时,各个map将计算结果发送到汇总计算单元Reduce。其中,各个子计算单元的具体计算过程,与图1中所示的map的具体计算过程相同,本发明实施例不再详细赘述。
需要特别说明的是,当子计算单元在当前数据计算时间节点针对对应的计算任务计算得到计算结果,并且将计算结果发送到汇总计算单元时,具体是发送到与上述计算任务对应的汇总计算单元。
本发明实施例还公开了一种数据处理系统,参见图7所示,该系统包括:
子计算单元100、调度处理单元110、汇总计算单元120;
其中,所述子计算单元100,用于进行数据计算处理,并且在接收到所述调度处理单元110发送的数据汇总指令后,将进行数据计算处理得到的计算结果发送给对应的汇总计算单元120;
具体的,子计算单元100用于进行数据计算处理。更具体的说,是从消息队列中读取数据,完成自身负责的数据计算处理,并将计算结果进行缓存,当接收到调度处理单元110发送的数据汇总指令后,将缓存的计算结果发送给汇总计算单元120。
上述子计算单元100相当于图3所示的数据处理引擎中的map,每个map负责一部分数据计算。
在本发明实施例中,设置子计算单元100、汇总计算单元120与计算任务相对应,也就是说,对于每一个计算任务,都分配至少一个汇总计算单元120与之相对应,与该计算任务对应的的所有子计算单元100的计算结果,都汇总到对应的汇总计算单元120中进行汇总计算。
所述调度处理单元110,用于当到达数据计算时间节点时,向与计算任务对应的子计算单元100发送数据汇总指令;
具体的,本发明实施例设定,以数据计算时间节点为基准控制整个数据计算处理过程。当到达某一个数据计算时间节点时,调度处理单元110统一向子计算单元100发送数据汇总指令,使各个子计算单元100在接收到数据汇总指令后,将数据计算的计算结果发送给对应的汇总计算单元120。
可以理解,在当前时间不是数据计算时间节点时,调度处理单元110不会向子计算单元100发送任何指令,此时子计算单元100将计算得到的计算结果进行缓存而不发送给汇总计算单元120。当调度处理单元110向子计算单元100统一发送数据汇总指令时,子计算单元100统一将缓存的计算结果发送给汇总计算单元120。
所述汇总计算单元120,用于接收与所述计算任务对应的子计算单元发送的计算结果,并判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
具体的,上述的汇总计算单元120相当于图3中所示的Reduce,用于对子计算单元100的计算结果进行汇总计算处理,得到数据计算结果。可以理解,由于上述的计算过程是当调度处理单元110判断到达数据计算时间节点时,控制子计算单元100和汇总计算单元120所进行的数据计算处理,因此得到的数据计算结果,具体是对应该数据计算时间节点的数据计算结果。
在本发明实施例中,设置上述第二数量的汇总计算单元120的数量不少于2个,也就是在上述的数据处理系统中,设置多个汇总计算单元120,每个汇总计算单元120用于对某一数据计算时间节点的数据进行汇总计算处理。一方面,可以提高汇总计算的处理速度,另一方面,相对于传统的只有一个汇总计算单元的数据处理引擎架构,可以分担汇总计算单元的压力。
需要说明的是,本实施例中的各个单元的具体工作内容,还可参见上述方法实施例的内容,此处不再赘述。
所述数据处理系统包括处理器和存储器,上述子计算单元、调度处理单元、汇总计算单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来进行数据处理。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据处理方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据处理方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元将进行数据计算处理得到的计算结果发送到与所述计算任务对应的汇总计算单元;
其中,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,对接收的计算结果进行汇总计算处理,得到所述计算任务在所述数据计算时间节点的数据计算结果。
可选的,所述与所述计算任务对应的汇总计算单元在计算得到所述计算任务在所述数据计算时间节点的数据计算结果后,该方法还包括:
将所述数据计算结果序列化到设定的数据库。
可选的,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,该方法还包括:
判断是否接收到与所述计算任务对应的所有子计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
或者,
接收与计算任务对应的子计算单元发送的计算结果;其中,所述子计算单元发送的计算结果由所述子计算单元进行数据计算处理得到,并由所述子计算单元在数据计算时间节点接收到数据汇总指令后发送;
判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或对当前接收的计算结果进行汇总计算处理并标记本次汇总计算结果有误。
或者,
进行数据计算处理;
当接收到数据汇总指令时,将进行数据计算处理得到的计算结果发送到对应的汇总计算单元,使所述汇总计算单元对接收的计算结果进行汇总计算处理,得到数据计算结果。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元将进行数据计算处理得到的计算结果发送到与所述计算任务对应的汇总计算单元;
其中,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,对接收的计算结果进行汇总计算处理,得到所述计算任务在所述数据计算时间节点的数据计算结果。
可选的,所述与所述计算任务对应的汇总计算单元在计算得到所述计算任务在所述数据计算时间节点的数据计算结果后,该方法还包括:
将所述数据计算结果序列化到设定的数据库。
可选的,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,该方法还包括:
判断是否接收到与所述计算任务对应的所有子计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
或者,
接收与计算任务对应的子计算单元发送的计算结果;其中,所述子计算单元发送的计算结果由所述子计算单元进行数据计算处理得到,并由所述子计算单元在数据计算时间节点接收到数据汇总指令后发送;
判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
可选的,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或对当前接收的计算结果进行汇总计算处理并标记本次汇总计算结果有误。
或者,
进行数据计算处理;
当接收到数据汇总指令时,将进行数据计算处理得到的计算结果发送到对应的汇总计算单元,使所述汇总计算单元对接收的计算结果进行汇总计算处理,得到数据计算结果。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令,使所述子计算单元将进行数据计算处理得到的计算结果发送到与所述计算任务对应的汇总计算单元;
其中,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,对接收的计算结果进行汇总计算处理,得到所述计算任务在所述数据计算时间节点的数据计算结果。
2.根据权利要求1所述的方法,其特征在于,所述与所述计算任务对应的汇总计算单元在计算得到所述计算任务在所述数据计算时间节点的数据计算结果后,该方法还包括:
将所述数据计算结果序列化到设定的数据库。
3.根据权利要求1或2所述的方法,其特征在于,与所述计算任务对应的汇总计算单元接收到所述子计算单元发送的计算结果后,该方法还包括:
判断是否接收到与所述计算任务对应的所有子计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理。
4.根据权利要求3所述的方法,其特征在于,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或输出本次汇总计算结果并标记本次汇总计算结果有误。
5.一种数据处理方法,其特征在于,应用于汇总计算单元,该方法包括:
接收与计算任务对应的子计算单元发送的计算结果;其中,所述子计算单元发送的计算结果由所述子计算单元进行数据计算处理得到,并由所述子计算单元在数据计算时间节点接收到数据汇总指令后发送;
判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;
如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
6.根据权利要求5所述的方法,其特征在于,该方法还包括:
如果没有接收到与所述计算任务对应的所有子计算单元发送的计算结果,则等待接收到与所述计算任务对应的所有子计算单元发送的计算结果后再对接收的计算结果进行汇总计算处理,或对当前接收的计算结果进行汇总计算处理并标记本次汇总计算结果有误。
7.一种数据处理方法,其特征在于,应用于子计算单元,该方法包括:
进行数据计算处理;
当接收到数据汇总指令时,将进行数据计算处理得到的计算结果发送到对应的汇总计算单元,使所述汇总计算单元对接收的计算结果进行汇总计算处理,得到数据计算结果。
8.一种数据处理系统,其特征在于,包括:
子计算单元、调度处理单元、汇总计算单元;
其中,所述子计算单元,用于进行数据计算处理,并且在接收到所述调度处理单元发送的数据汇总指令后,将进行数据计算处理得到的计算结果发送给对应的汇总计算单元;
所述调度处理单元,用于当到达数据计算时间节点时,向与计算任务对应的子计算单元发送数据汇总指令;
所述汇总计算单元,用于接收与所述计算任务对应的子计算单元发送的计算结果,并判断是否接收到与所述计算任务对应的所有计算单元发送的计算结果;如果接收到与所述计算任务对应的所有子计算单元发送的计算结果,则对接收的计算结果进行汇总计算处理,得到数据计算结果。
9.一种存储介质,其特征在于,所述存储介质上存储有程序,该程序被处理器执行时实现权利要求1至4中任一权利要求、或权利要求5至6中任一权利要求、或权利要求7所述的数据处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至4中任一权利要求、或权利要求5至6中任一权利要求、或权利要求7所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810695126.3A CN110659111A (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810695126.3A CN110659111A (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659111A true CN110659111A (zh) | 2020-01-07 |
Family
ID=69026629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810695126.3A Pending CN110659111A (zh) | 2018-06-29 | 2018-06-29 | 数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659111A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094391A (zh) * | 2021-04-22 | 2021-07-09 | 山东浪潮通软信息科技有限公司 | 一种支持缓存的数据汇总的计算方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140052750A1 (en) * | 2012-08-14 | 2014-02-20 | Amadeus S.A.S. | Updating cached database query results |
CN104915247A (zh) * | 2015-04-29 | 2015-09-16 | 上海瀚银信息技术有限公司 | 一种实时数据计算方法及系统 |
CN105138679A (zh) * | 2015-09-14 | 2015-12-09 | 桂林电子科技大学 | 一种基于分布式缓存的数据处理系统及处理方法 |
CN106294374A (zh) * | 2015-05-15 | 2017-01-04 | 北京国双科技有限公司 | 小文件合并的方法和数据查询系统 |
CN106341478A (zh) * | 2016-09-13 | 2017-01-18 | 广州中大数字家庭工程技术研究中心有限公司 | 一种基于Hadoop的教育资源共享系统及实现方法 |
CN107315761A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据更新方法、数据查询方法及装置 |
CN107729138A (zh) * | 2017-09-14 | 2018-02-23 | 北京天耀宏图科技有限公司 | 一种高性能分布式矢量空间数据的分析方法和装置 |
-
2018
- 2018-06-29 CN CN201810695126.3A patent/CN110659111A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140052750A1 (en) * | 2012-08-14 | 2014-02-20 | Amadeus S.A.S. | Updating cached database query results |
CN104915247A (zh) * | 2015-04-29 | 2015-09-16 | 上海瀚银信息技术有限公司 | 一种实时数据计算方法及系统 |
CN106294374A (zh) * | 2015-05-15 | 2017-01-04 | 北京国双科技有限公司 | 小文件合并的方法和数据查询系统 |
CN105138679A (zh) * | 2015-09-14 | 2015-12-09 | 桂林电子科技大学 | 一种基于分布式缓存的数据处理系统及处理方法 |
CN106341478A (zh) * | 2016-09-13 | 2017-01-18 | 广州中大数字家庭工程技术研究中心有限公司 | 一种基于Hadoop的教育资源共享系统及实现方法 |
CN107315761A (zh) * | 2017-04-17 | 2017-11-03 | 阿里巴巴集团控股有限公司 | 一种数据更新方法、数据查询方法及装置 |
CN107729138A (zh) * | 2017-09-14 | 2018-02-23 | 北京天耀宏图科技有限公司 | 一种高性能分布式矢量空间数据的分析方法和装置 |
Non-Patent Citations (1)
Title |
---|
顾涛: "集群MapReduce环境中任务和作业调度若干关键问题的研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094391A (zh) * | 2021-04-22 | 2021-07-09 | 山东浪潮通软信息科技有限公司 | 一种支持缓存的数据汇总的计算方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754060B (zh) | 一种神经网络机器学习模型的训练方法及装置 | |
US10223131B1 (en) | Implementing continues PaaS apps resource optimization using production workload replay with intelligent configuration permutations | |
CN106815254A (zh) | 一种数据处理方法和装置 | |
CN104113576A (zh) | 一种客户端的更新方法及装置 | |
US11095531B2 (en) | Service-aware serverless cloud computing system | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN108241534A (zh) | 一种任务处理、分配、管理、计算的方法以及装置 | |
WO2021169386A1 (zh) | 一种图数据处理方法、装置、设备、介质 | |
CN113448728A (zh) | 一种云资源调度方法、装置、设备及存储介质 | |
CN110875938A (zh) | 一种区块链中信息的发送方法及装置 | |
CN109542920B (zh) | 一种数据传输方法、装置、介质和电子设备 | |
CN110659111A (zh) | 数据处理方法及系统 | |
CN104951442A (zh) | 一种确定结果向量的方法和装置 | |
CN112416534A (zh) | 一种基于Agent的任务管理方法及装置 | |
CN111061618B (zh) | 云平台仿真系统、云平台性能测试方法和计算机设备 | |
CN112885327A (zh) | 语音合成方法、装置、设备及存储介质 | |
CN111917867A (zh) | 上传Web文件的方法及装置 | |
CN101833585A (zh) | 数据库服务器操作控制系统、方法及设备 | |
CN109587198B (zh) | 图文信息推送方法及装置 | |
CN114138453B (zh) | 一种适合边缘计算环境的资源优化分配方法与系统 | |
CN103502941B (zh) | 一种并行处理方法和装置 | |
CN115048186A (zh) | 业务容器的扩缩容处理方法、装置、存储介质及电子设备 | |
CN110968420A (zh) | 一种多爬虫平台的调度方法、装置、存储介质及处理器 | |
CN109816414A (zh) | 广告效果数据预测方法及装置 | |
CN110955644A (zh) | 一种存储系统的io控制方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200107 |