CN110489242B - 分布式数据计算方法、装置、终端设备及存储介质 - Google Patents
分布式数据计算方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN110489242B CN110489242B CN201910908142.0A CN201910908142A CN110489242B CN 110489242 B CN110489242 B CN 110489242B CN 201910908142 A CN201910908142 A CN 201910908142A CN 110489242 B CN110489242 B CN 110489242B
- Authority
- CN
- China
- Prior art keywords
- data
- calculated
- distributed
- distributed data
- calculation
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 188
- 239000000284 extract Substances 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 25
- 238000000034 method Methods 0.000 description 21
- 230000003044 adaptive effect Effects 0.000 description 8
- 238000003491 array Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式数据计算方法、装置、终端设备及可计算机读存储介质,基于获取分布式数据计算任务中待计算数据的数据量大小;检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。本发明通过兼容多线程方式对分布式数据计算任务进行数据计算处理,使得执行数据计算处理的终端设备得以充分利用其CPU资源,提升了大数据计算的整体性能。
Description
技术领域
本发明涉及Fintech(金融科技)技术领域,尤其涉及一种分布式数据计算方法、装置、终端设备及计算机可读存储介质。
背景技术
在大数据计算过程中,一般会选择调用分布式计算模式对数据计算任务所携带的待计算数据进行计算。然而,在传统的使用分布式计算模式进行数据计算时,终端设备仅能够基于单线程进行数据计算的整个流程,如此,终端设备的CPU(Central ProcessingUnit/Processor:中央处理器)资源无法得到充分有效的利用,致使大数据计算的整体性能较低。
发明内容
本发明的主要目的在于提供一种分布式数据计算方法、装置、终端设备及计算机可读存储介质,旨在解决现有的分布式数据计算任务基于单线程进行数据计算时无法充分CPU资源,致使大数据计算的整体性能较低的技术问题。
为实现上述目的,本发明提供一种分布式数据计算方法,所述分布式数据计算方法包括:
获取分布式数据计算任务中待计算数据的数据量大小;
检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。
进一步地,所述调用预设多线程运行接口计算所述待计算数据的步骤,包括:
根据线程池中线程的数量分割所述待计算数据,并记录分割后的待计算数据的各数组下标;
将各所述数组下标发送至各所述线程,以供各所述线程独立计算各所述待计算数据;
获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
进一步地,在所述调用预设多线程运行接口计算所述待计算数据的步骤之前,还包括:
获取所述终端设备的CPU核数,根据所述CPU核数确定对所述待计算数据进行计算的线程池。
进一步地,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之前,还包括:
获取所述待计算数据的文件路径,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中。
进一步地,所述根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中的步骤,包括:
将所述文件路径发送至所述线程池中的各所述线程,以供各所述线程按照所述文件路径提取所述待计算数据至所述终端设备的存储器;
将提取出的所述待计算数据合并为数组存储于所述存储器中,直到所述分布式数据计算任务被执行完成。
进一步地,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之前,还包括:
根据执行当前所述分布式数据计算任务的终端设备的设备参数确定所述预设内存阈值。
进一步地,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之后,还包括:
在检测到所述数据量大小大于或者等于所述预设内存阈值时,调用分布式执行接口计算所述待计算数据。
此外,为实现上述目的,本发明还提供一种分布式数据计算装置,所述分布式数据计算装置包括:
获取模块,用于获取分布式数据计算任务中待计算数据的数据量大小;
检测模块,用于检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
计算模块,用于在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。
本发明还提供一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式数据计算程序,所述分布式数据计算程序被所述处理器执行时实现如上述中的分布式数据计算方法的步骤。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的分布式数据计算方法的步骤。
本发明提出的分布式数据计算方法、装置、终端设备以及计算机可读存储介质,通过获取分布式数据计算任务中待计算数据的数据量大小;检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。本发明基于检测分布式数据计算任务中待计算数据的数据量大小,并在判断到数据量小于当前执行分布式数据计算任务的终端设备的预设内存阈值时,自动调用预先配置好的兼容实现多线程计算模式的执行接口对当前分布式数据计算任务中的待计算数据进行计算。实现了自动根据数据量大小选择调用兼容多线程计算模式的执行接口进行计算处理,通过兼容多线程方式对分布式数据计算任务进行数据计算处理,使得终端设备得以充分利用CPU资源,提升了大数据计算的整体性能。
附图说明
图1是本发明实施例方案涉及的硬件运行的结构示意图;
图2是本发明一种分布式数据计算方法第一实施例的流程示意图;
图3是本发明一种分布式数据计算方法一实施例中步骤S300的细化流程示意图;
图4是本发明一种分布式数据计算方法一实施例的应用场景示意图;
图5是本发明一种分布式数据计算装置的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。
需要说明的是,图1即可为终端设备的硬件运行环境的结构示意图。本发明实施例终端设备可以是PC,便携计算机等终端设备。
如图1所示,该终端设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及分布式任务的处理程序。其中,操作系统是管理和控制样本终端设备硬件和软件资源的程序,支持分布式任务的处理程序以及其它软件或程序的运行。
在图1所示的终端设备中,用户接口1003主要用于与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的分布式数据计算程序,并执行以下操作:
获取分布式数据计算任务中待计算数据的数据量大小;
检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,还执行以下操作:
根据线程池中线程的数量分割所述待计算数据,并记录分割后的待计算数据的各数组下标;
将各所述数组下标发送至各所述线程,以供各所述线程独立计算各所述待计算数据;
获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,在执行调用预设多线程运行接口计算所述待计算数据之前,还执行以下操作:
获取所述终端设备的CPU核数,根据所述CPU核数确定对所述待计算数据进行计算的线程池。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,在执行检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值之前,还执行以下操作:
获取所述待计算数据的文件路径,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,还执行以下操作:
将所述文件路径发送至所述线程池中的各所述线程,以供各所述线程按照所述文件路径提取所述待计算数据至所述终端设备的存储器;
将提取出的所述待计算数据合并为数组存储于所述存储器中,直到所述分布式数据计算任务被执行完成。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,在执行检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值之前,还执行以下操作:
根据执行当前所述分布式数据计算任务的终端设备的设备参数确定所述预设内存阈值。
进一步地,处理器1001可以调用存储器1005中存储的分布式数据计算程序,在执行检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值之后,还执行以下操作:
在检测到所述数据量大小大于或者等于所述预设内存阈值时,调用分布式执行接口计算所述待计算数据。
基于上述的结构,提出本发明分布式数据计算方法的各个实施例。
请参照图2,图2为本发明分布式数据计算方法第一实施例的流程示意图。
本发明实施例提供了分布式数据计算方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例分布式数据计算方法应用于上述终端设备,本发明实施例终端设备可以是PC,便携计算机等终端设备,在此不做具体限制。
本实施例分布式数据计算方法包括:
步骤S100,获取分布式数据计算任务中待计算数据的数据量大小。
当前处理分布式数据计算任务的终端设备在接收到与其连接的客户端所发送的分布式数据计算任务之后,获取该接收到的分布式数据计算任务中,需要进行计算处理的待计算数据的数据量大小。
具体地,例如,在如图4所示的应用场景中,客户端向执行处理大数据计算的设备终端发送分布式数据计算任务,终端设备在接收到客户端所发送的当前分布式数据计算任务之后,通过执行预先编写的对多线程执行接口与分布式执行接口进行接口统一的并行代码,将当前分布式数据计算任务传入至自动选择多线程计算模式或者分布式计算模式的自适应框架中,该自适应框架通过当前终端设备上的文件系统(诸如:HDFS(HadoopDistributed File System:分布式文件系统)、或者EXT)的接口,从终端设备的数据存储获取所有文件目录列表,从而获取到当前分布式数据计算任务所指定计算数据的数据量大小。
进一步地,在另一个实施例中,在如图2所示的步骤S300,调用预设多线程执行接口计算所述待计算数据之前,本发明分布式数据计算方法,还包括:
步骤A,获取所述终端设备的CPU核数,根据所述CPU核数确定对所述待计算数据进行计算的线程池。
检测识别执行当前分布式数据计算任务的终端设备的CPU的核数,并进一步根据识别到的该终端设备的CPU的核数,计算确定当前终端设备采用多线程计算模式对当前分布式数据计算任务中待计算数据进行计算的线程池的大小。
具体地,例如,在如图4所示的应用场景中,自动选择多线程计算模式或者分布式计算模式的自适应框架,通过检测识别当前终端设备系统参数获取到当前终端设备的CPU核数P=64核,则通过公式P=N(当CPU核数P为1时使用,其中N为线程数),以及公式P=N-1(依据当前终端设备CPU性能等为依据进行设置),计算确定出当前终端设备在采用多线程计算模式对当前分布式数据计算任务中的待计算数据进行计算时,所需调用的线程池的大小为:N=64-1=63线程,即当前终端设备在采用多线程计算模式对当前分布式数据计算任务中的待计算数据进行计算时,所能够调用的线程数量为63线程。
需要说明的是,本实施例中,当前终端设备在采用多线程计算模式对当前分布式数据计算任务中的待计算数据进行计算时,所能够调用的线程数量也可以通过参数,由客户端用户或者当前终端设备的开发人员手动进行设置。
进一步地,在另一个实施例中,在如图2所示的步骤S200,检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值之前,本发明分布式数据计算方法,还包括:
步骤B,获取所述待计算数据的文件路径,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中。
需要说明的是,本实施例中,在根据文件路径提取待计算数据并对待计算数据进行保存的终端设备的存储器为终端设备的内存储器,例如,运行内存。
当前处理分布式数据计算任务的终端设备获取其接收到的分布式数据计算任务中,需要进行计算处理的待计算数据的数据量大小的同时,获取该需要进行计算处理的待计算数据在当前终端设备存储空间中的文件路径,根据获取到的该文件路径从存储空间中提取该待计算数据,并将提取的待计算数据常驻在当前终端设备的前台运行内存中,以便于当前终端设备在对该待计算数据进行计算时随时进行读取。
具体地,例如,在如图4所示的应用场景中,在当前终端设备上自动选择多线程计算模式或者分布式计算模式的自适应框架,通过当前终端设备上的文件系统的接口获取所有文件目录列表,进而获取到当前分布式数据计算任务所指定计算数据的数据量大小的同时,进一步获取当前分布式数据计算任务所指定计算数据,在当前终端设备的数据存储(可以是本地存储空间或者网络云存储空间)中的文件存储路径。
进一步地,步骤B中,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中的步骤,包括:
步骤B1,将所述文件路径发送至所述线程池中的各所述线程,以供各所述线程按照所述文件路径提取所述待计算数据至所述终端设备的存储器。
具体地,例如,在如图4所示的应用场景中,终端设备中自动选择多线程计算模式或者分布式计算模式的自适应框架,将获取到的当前分布式数据计算任务所指定待计算数据的文件存储路径,通过点对点逐一发送的方式或者通过广播统一发送的方式,全部发送到基于当前终端设备的CPU核数计算确定出的当前终端设备在采用多线程计算模式对当前分布式数据计算任务中的待计算数据进行计算时,所需调用的线程池(即N=64-1=63线程)中的每一个线程上,从而各线程在接收到该待计算数据的文件存储路径之后,从当前终端设备的本地存储空间或者网络云存储空间中提取全部该待计算数据至当前终端设备的前台运行内存。
步骤B2,将提取出的所述待计算数据合并为数组存储于所述存储器中,直到所述分布式数据计算任务被执行完成。
具体地,例如,在如图4所示的应用场景中,在各线程根据自适应框架发送的当前分布式数据计算任务所指定待计算数据的文件存储路径,从当前终端设备的本地存储空间或者网络云存储空间中提取全部该待计算数据至当前终端设备的前台运行内存之后,由当前线程池中的任意一个线程将提取出的全部待计算数据统一合并为一个连续的数组,并将该合并得到的数组常驻保存在当前终端设备的前台运行内存中,以便于当前线程池中的各线程在对该待计算数据进行计算时随时进行读取,直到各线程对待计算数据进行计算的全部运行进行结束时,当前线程池中的任意一个线程将该合并得到数组从当前终端设备的前台运行内存中进行剔除。
需要说明的是,常驻保存在终端设备的前台运行内存中的数组,也可以通过客户端用户或者当前终端设备开发人员手动进行清理。
步骤S200,检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值。
在获取到当前分布式数据计算任务中,需要进行计算处理的待计算数据的数据量大小之后,检测该数据量大小是否小于处理当前分布式数据计算任务的终端设备的预设内存阈值。
进一步地,在另一个实施例中,在步骤S200之前,本发明分布式数据计算方法,还包括:
步骤C,根据执行当前所述分布式数据计算任务的终端设备的设备参数确定所述预设内存阈值。
为保证当前终端设备能够留有充足的运行内存空间执行其他操作任务,预先根据处理执行当前分布式数据计算任务终端设备的设备参数设置的内存容量阈值。
具体地,例如,预先根据处理执行当前分布式数据计算任务的终端设备的CPU性能、运行内存容量以及运行内存占用情况等设备设备参数,设置终端设备内存容量的60%作为内存容量阈值,此外,终端设备的预设内存阈值也可由客户端用户或者当前终端设备开发人员手动进行调整,例如手动调整终端设备内存容量的60%为70%或者80%作为内存容量阈值。
步骤S300,在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。
当检测到当前分布式数据计算任务所指定待计算数据的数据量大小小于处理当前分布式数据计算任务的终端设备的预设内存阈值时,随即在当前终端上调用对原分布式执行接口进行拓展从而能够实现多线程计算模式的预设多线程执行接口来对待计算数据进行计算。
具体地,例如,在如图4所示的应用场景中,当终端设备中自动选择多线程计算模式或者分布式计算模式的自适应框架,在检测到当前分布式数据计算任务所指定待计算数据的数据量大小数值小于预先根据处理执行当前分布式数据计算任务终端设备的设备参数设置的内存容量阈值时,即小于终端设备内存容量的60%时,随即在当前终端设备上调用对原分布式执行接口进行拓展从而能够实现多线程计算模式的预设多线程执行接口,通过多线程计算模式对待计算数据进行计算处理。
进一步地,在另一个实施例中,在本发明实施例步骤S200,检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之后,本发明分布式数据计算方法,还包括:
步骤D,在检测到所述数据量大小大于或者等于所述预设内存阈值时,调用分布式执行接口计算所述待计算数据。
当检测到当前分布式数据计算任务所指定待计算数据的数据量大小大于或者等于处理当前分布式数据计算任务的终端设备的预设内存阈值时,随即在当前终端上调用对原分布式执行接口进行拓展从而能够实现多线程计算模式的预设多线程执行接口来对待计算数据进行计算。
具体地,例如,在如图4所示的应用场景中,当终端设备中自动选择多线程计算模式或者分布式计算模式的自适应框架,在检测到当前分布式数据计算任务所指定待计算数据的数据量大小数值大于等于预先根据处理执行当前分布式数据计算任务终端设备的设备参数设置的内存容量阈值时,即大于或者等于终端设备内存容量的60%时,随即在当前终端设备上调用原分布式执行接口,通过分布式计算模式对待计算数据进行计算处理。
在本实施例中,基于当前处理分布式数据计算任务的终端设备在接收到与其连接的客户端所发送的分布式数据计算任务之后,获取该接收到的分布式数据计算任务中,需要进行计算处理的待计算数据的数据量大小,并检测该数据量大小是否小于处理当前分布式数据计算任务的终端设备的预设内存阈值。检测识别执行当前分布式数据计算任务的终端设备的CPU的核数,并进一步根据识别到的该终端设备的CPU的核数,计算确定当前终端设备采用多线程计算模式对当前分布式数据计算任务中待计算数据进行计算的线程池的大小,通过获取该需要进行计算处理的待计算数据在当前终端设备存储空间中的文件路径,根据获取到的该文件路径从存储空间中提取该待计算数据并常驻在当前终端设备的前台运行内存中,以便于当前终端设备在对该待计算数据进行计算时随时进行读取。当检测到数据量大小小于终端设备的预设内存阈值时,随即自动在当前终端上调用对原分布式执行接口进行拓展从而能够实现多线程计算模式的预设多线程执行接口来对待计算数据进行计算,或者,在检测到数据量大小不小于终端设备的预设内存阈值时,自动调用原分布式执行接口来对待计算数据进行计算。
实现了,自动根据数据量大小调用兼容多线程计算模式的执行接口或者分布式执行接口,以自动选择多线程计算模式或者分布式计算模式进行计算处理,从而无需用户预先选择计算模式或者预先增加判断逻辑来选择计算模式,并且,通过并行代码将分布式和多线程的两种执行接口进行统一,从而无需用户或者开发人员再编写多套分布式和多线程各自所对应的执行代码,提升了大数据计算的开发效率,另外,通过兼容多线程方式对分布式数据计算任务进行数据计算处理,使得终端设备得以充分利用CPU资源,提升了大数据计算的整体性能。
进一步地,基于上述分布式数据计算方法第一实施例,提出本发明分布式数据计算方法的第二实施例。
请参照图3,图3为本发明一种分布式数据计算方法第一实施例中,步骤S300的细化流程示意图,在本发明分布式数据计算方法的第二实施例中,上述步骤S300中,调用预设多线程运行接口计算所述待计算数据的步骤,包括:
步骤S301,根据所述线程池中各所述线程的数量分割所述数组,并记录分割后各数组的各数组下标。
在将从终端设备的数据存储空间中提取出的分布式数据计算任务,所指定待计算数据合并为数组常驻在终端设备的前台运行内存之后,基于确定的当前终端设备采用多线程计算模式对待计算数据进行计算的线程池中线程的数量,将合并待计算数据产生的数组分割成与线程池中线程数量相对应数量的各等份数组,并记录分割出各等份数组的数组下标。
具体地,例如,处理执行当前分布式数据任务的终端设备基于预先计算确定的当前终端设备在采用多线程计算模式对当前分布式数据计算任务中的待计算数据进行计算时,所能够调用线程池中线程的数量为63,将当前终端设备前台运行内存所驻存的通过将待计算数据合并生成的连续的数组,分割为每一份数据量大致相等的63等份数组,逐一记录下该63等份数组连续的数据下标。
步骤S302,将各所述数组下标发送至各所述线程,以供各所述线程独立计算分割后各数组对应的待计算数据。
在终端设备通过多线程计算模式处理执行当前分布式数据计算任务,对待计算数据进行计算处理时,将记录分割后各等份数组的数组下标作为分割点信息分别发送至线程池中的每一个线程上,各线程根据各自所接收到的数组下标从当前终端设备的前台运行内存中,分别提取各自所需要进行计算处理的那一部分待计算数据,并相互独立对该部分待计算数据进行计算。
需要说明的是,线程池中的每一个线程独立对各自所接收到数组下标所对应数据进行计算处理的过程中,各线程基于无锁模式(即各线程各自从数组中提取自己所需计算的部分数据独立进行计算,无需对数组进行锁定)并行的独立运行以对各等份的待机计算数据进行计算处理。
步骤S303,获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
在当前终端设备采用多线程计算模式对待计算数据进行计算的线程池中,由任意一个线程担任主线程以将该线程池中相互独立的对各自所接收到的数组下标所对应的部分待计算数据进行计算的计算结果进行合并,从而得出当前分布式数据计算任务中待计算数据的最终计算结果。
具体地,例如,预先在当前终端设备采用多线程计算模式对待计算数据进行计算的线程池中确定一用于合并统计最终计算结果的主线程,从而该主线程在任意一个其他各相互独立的对各自所接收到的数组下标所对应的部分待计算数据进行计算并得出计算结果之后,即在任一其他线程运行完毕之后,立即开始将该线程所得出的计算结果与初值(各线程开始运行时为0)或者上一个运行完毕的线程所得出的运行结果进行合并,直到当前线程池中的全部线程均运行完毕,从而合并统计出当前分布式数据计算任务的最终计算结果。
需要说明的是,在终端设备通过选择分布式计算模式或者多线程计算模式对当前分布式数据计算任务所指定的待计算数据进行计算并得出最终的计算结果之后,终端设备将得出的计算结果反馈至发送当前分布式数据计算任务的客户端,并自动清除当前驻存在前台运行内存中的数组。
在本实施例中,通过在将从终端设备的数据存储空间中提取出的分布式数据计算任务,所指定待计算数据合并为数组常驻在终端设备的前台运行内存之后,基于确定的当前终端设备采用多线程计算模式对待计算数据进行计算的线程池中线程的数量,将合并待计算数据产生的数组分割成与线程池中线程数量相对应数量的各等份数组,并记录分割出各等份数组的数组下标,在终端设备通过多线程计算模式处理执行当前分布式数据计算任务,对待计算数据进行计算处理时,将记录分割后各等份数组的数组下标作为分割点信息分别发送至线程池中的每一个线程上,各线程根据各自所接收到的数组下标从当前终端设备的前台运行内存中,分别提取各自所需要进行计算处理的那一部分待计算数据,并相互独立对该部分待计算数据进行计算,在当前终端设备采用多线程计算模式对待计算数据进行计算的线程池中,由任意一个线程担任主线程以将该线程池中相互独立的对各自所接收到的数组下标所对应的部分待计算数据进行计算的计算结果进行合并,从而得出当前分布式数据计算任务中待计算数据的最终计算结果。
实现了,以分割后各数组的数组下标作为分割点信息,供各线程准确提取各自需要进行计算处理的待计算数据,无数据交互,避免了传统偏移量索引待处理数据造成的数据缺失现象,保证了最终计算结果的准确性,且各线程以并行运行方式相互独立的对各自提取的待计算数据进行计算处理,不存在竞争运行资源的情况,进一步提升了数据计算的整体性能。
此外,请参照图5,本发明实施例还提出一种分布式数据计算装置,本发明分布式数据计算装置,包括:
获取模块,用于获取分布式数据计算任务中待计算数据的数据量大小;
检测模块,用于检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
计算模块,用于在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口。
优选地,获取模块,包括:
数据提取单元,用于将所述文件路径发送至所述线程池中的各所述线程,以供各所述线程按照所述文件路径提取所述待计算数据至所述终端设备的内存;
数据驻存单元,用于将提取出的所述待计算数据合并为数组存储于所述内存中,直到所述分布式数据计算任务被执行完成。
优选地,本发明分布式数据计算装置的获取模块,还用于获取所述终端设备的CPU核数,根据所述CPU核数确定对所述待计算数据进行计算的线程池。
优选地,本发明分布式数据计算装置的获取模块,还用于获取所述待计算数据的文件路径,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的内存中。
优选地,计算模块,包括:
分割单元,用于根据所述线程池中各所述线程的数量分割所述数组,并记录分割后各数组的各数组下标;
计算处理单元,用于将各所述数组下标发送至各所述线程,以供各所述线程独立计算分割后各数组对应的待计算数据;
结果合并单元,用于获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
优选地,本发明分布式数据计算装置,还包括:
确定模块,用于根据执行当前所述分布式数据计算任务的终端设备的设备参数确定所述预设内存阈值。
优选地,本发明分布式数据计算装置的计算模块,还用于在检测到所述数据量大小大于或者等于所述预设内存阈值时,调用分布式执行接口计算所述待计算数据。
本实施例提出的分布式数据计算装置各个功能模块在运行时实现如上所述的分布式数据计算方法的步骤,在此不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,应用于计算机,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质上存储有分布式数据计算程序,所述分布式数据计算程序被处理器执行时实现如上所述的分布式数据计算方法的步骤。
其中,在所述处理器上运行的分布式数据计算程序被执行时所实现的步骤可参照本发明分布式数据计算方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种分布式数据计算方法,其特征在于,所述分布式数据计算方法包括:
获取分布式数据计算任务中待计算数据的数据量大小;
检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口;
所述调用预设多线程运行接口计算所述待计算数据的步骤,包括:
根据线程池中线程的数量分割所述待计算数据,并记录分割后的待计算数据的各数组下标;
将各所述数组下标发送至各所述线程,以供各所述线程在预设的无锁模式下独立计算各所述待计算数据,其中,所述无锁模式为所述线程可以在对所述待计算数据进行计算时,无需对所述数组进行锁定的模式;
获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
2.如权利要求1所述的分布式数据计算方法,其特征在于,在所述调用预设多线程运行接口计算所述待计算数据的步骤之前,还包括:
获取所述终端设备的CPU核数,根据所述CPU核数确定对所述待计算数据进行计算的线程池。
3.如权利要求1所述的分布式数据计算方法,其特征在于,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之前,还包括:
获取所述待计算数据的文件路径,根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中。
4.如权利要求3所述的分布式数据计算方法,其特征在于,所述根据所述文件路径提取所述待计算数据并将所述待计算数据保存至所述终端设备的存储器中的步骤,包括:
将所述文件路径发送至线程池中的各线程,以供各所述线程按照所述文件路径提取所述待计算数据至所述终端设备的存储器;
将提取出的所述待计算数据合并为数组存储于所述存储器中,直到所述分布式数据计算任务被执行完成。
5.如权利要求1所述的分布式数据计算方法,其特征在于,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之前,还包括:
根据执行当前所述分布式数据计算任务的终端设备的设备参数确定所述预设内存阈值。
6.如权利要求1所述的分布式数据计算方法,其特征在于,在所述检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值的步骤之后,还包括:
在检测到所述数据量大小大于或者等于所述预设内存阈值时,调用分布式执行接口计算所述待计算数据。
7.一种分布式数据计算装置,其特征在于,所述分布式数据计算装置包括:
获取模块,用于获取分布式数据计算任务中待计算数据的数据量大小;
检测模块,用于检测所述数据量大小是否小于所述分布式数据计算任务的终端设备的预设内存阈值;
计算模块,用于在检测到小于所述预设内存阈值时,调用预设多线程执行接口计算所述待计算数据,其中,所述预设多线程执行接口为拓展原分布式执行接口得到的可实现多线程计算的接口;
其中,所述计算模块,还用于:
根据线程池中线程的数量分割所述待计算数据,并记录分割后的待计算数据的各数组下标;
将各所述数组下标发送至各所述线程,以供各所述线程在预设的无锁模式下独立计算各所述待计算数据,其中,所述无锁模式为所述线程可以在对所述待计算数据进行计算时,无需对所述数组进行锁定的模式;
获取各所述线程独立计算得到的各计算结果,并将各所述计算结果进行合并。
8.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的分布式数据计算程序,所述分布式数据计算程序被所述处理器执行时实现如权利要求1至6中任一项所述的分布式数据计算方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的分布式数据计算方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908142.0A CN110489242B (zh) | 2019-09-24 | 2019-09-24 | 分布式数据计算方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910908142.0A CN110489242B (zh) | 2019-09-24 | 2019-09-24 | 分布式数据计算方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110489242A CN110489242A (zh) | 2019-11-22 |
CN110489242B true CN110489242B (zh) | 2024-01-26 |
Family
ID=68544281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910908142.0A Active CN110489242B (zh) | 2019-09-24 | 2019-09-24 | 分布式数据计算方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110489242B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241872A (zh) * | 2020-10-12 | 2021-01-19 | 上海众言网络科技有限公司 | 分布式数据计算分析方法、装置、设备和存储介质 |
CN112540852A (zh) * | 2020-12-21 | 2021-03-23 | 武汉光庭信息技术股份有限公司 | 一种地图数据下载方法、系统、终端设备及存储介质 |
CN115996197B (zh) * | 2023-03-17 | 2023-06-16 | 之江实验室 | 一种流量拥塞前置的分布式计算流量仿真系统与方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255607A (zh) * | 2018-01-08 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 任务处理方法、装置、电子终端及可读存储介质 |
CN109144731A (zh) * | 2018-08-31 | 2019-01-04 | 中国平安人寿保险股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN109359099A (zh) * | 2018-08-21 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 分布式文件上传方法、装置、计算机设备及存储介质 |
CN109669773A (zh) * | 2018-11-12 | 2019-04-23 | 平安科技(深圳)有限公司 | 金融数据处理方法、装置、设备和存储介质 |
CN110120251A (zh) * | 2018-02-07 | 2019-08-13 | 北京第一视角科技有限公司 | 基于Spark的多维健康数据的统计分析方法及系统 |
-
2019
- 2019-09-24 CN CN201910908142.0A patent/CN110489242B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255607A (zh) * | 2018-01-08 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 任务处理方法、装置、电子终端及可读存储介质 |
CN110120251A (zh) * | 2018-02-07 | 2019-08-13 | 北京第一视角科技有限公司 | 基于Spark的多维健康数据的统计分析方法及系统 |
CN109359099A (zh) * | 2018-08-21 | 2019-02-19 | 中国平安人寿保险股份有限公司 | 分布式文件上传方法、装置、计算机设备及存储介质 |
CN109144731A (zh) * | 2018-08-31 | 2019-01-04 | 中国平安人寿保险股份有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN109669773A (zh) * | 2018-11-12 | 2019-04-23 | 平安科技(深圳)有限公司 | 金融数据处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110489242A (zh) | 2019-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489242B (zh) | 分布式数据计算方法、装置、终端设备及存储介质 | |
CN113535367B (zh) | 任务调度方法及相关装置 | |
CN111563014B (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
CN108280150B (zh) | 一种分布式异步业务分发方法及系统 | |
US8572621B2 (en) | Selection of server for relocation of application program based on largest number of algorithms with identical output using selected server resource criteria | |
CN107451062B (zh) | 一种用户界面遍历测试方法、装置、服务器、存储介质 | |
CN111221643A (zh) | 任务处理方法和任务处理装置 | |
CN106775948B (zh) | 一种基于优先级的云任务调度方法及装置 | |
US20230305880A1 (en) | Cluster distributed resource scheduling method, apparatus and device, and storage medium | |
CN111680085A (zh) | 数据处理任务分析方法、装置、电子设备和可读存储介质 | |
CN111124791A (zh) | 一种系统测试方法及装置 | |
CN112463370A (zh) | 任务执行方法、设备及可读存储介质 | |
CN111953503B (zh) | Nfv资源部署编排方法和网络功能虚拟化编排器 | |
CN117195568A (zh) | 一种基于离散事件的仿真引擎性能分析方法及装置 | |
CN107870921B (zh) | 一种日志数据处理方法及装置 | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN116126719A (zh) | 接口测试方法、装置、电子设备及存储介质 | |
CN111309475B (zh) | 一种检测任务执行方法及设备 | |
CN114201293A (zh) | Kafka中间件集群参数的修改方法、装置以及存储介质 | |
CN113407325A (zh) | 视频渲染方法、装置、计算机设备及存储介质 | |
US9633061B2 (en) | Methods for determining event counts based on time-sampled data | |
CN112379978A (zh) | 后端服务调用方法、装置、设备和存储介质 | |
CN111104565A (zh) | 元素访问方法、装置、设备和存储介质 | |
CN108415829B (zh) | 一种加载模块耗时检测的方法及终端 | |
CN114995981A (zh) | 一种并行任务调度方法、系统、存储介质和终端 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |