CN112764935B - 大数据处理方法、装置、电子设备及存储介质 - Google Patents
大数据处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112764935B CN112764935B CN202110123219.0A CN202110123219A CN112764935B CN 112764935 B CN112764935 B CN 112764935B CN 202110123219 A CN202110123219 A CN 202110123219A CN 112764935 B CN112764935 B CN 112764935B
- Authority
- CN
- China
- Prior art keywords
- task
- data processing
- big data
- historical
- plan tree
- 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
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/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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种大数据处理方法、装置、电子设备及存储介质。本发明的大数据处理方法,当参与大数据处理任务的数据表中主键的数据量超过第一预设阈值时,将主键的数据划分为多组;根据大数据处理任务建立至少一个执行计划树,确定每个执行计划树的代价,将代价最低的执行计划树作为最优执行计划树;根据最优执行计划树以及历史任务的第二统计信息确定大数据处理任务的并发量和计算资源;通过上述方式,充分利用统计信息,将数据分布优化、代价优化以及基于历史优化相结合进行大数据处理,在消除数据倾斜后进行代价优化,将代价优化所得最优执行计划树按照历史任务的统计信息进行计算资源分配,最大限度节约计算资源。
Description
【技术领域】
本发明涉及数据处理技术领域,尤其涉及一种大数据处理方法、装置、电子设备及存储介质。
【背景技术】
目前大数据处理任务,如MapReduce、Hive、Spark等任务存在的主要问题如下:数据倾斜(长尾效应)、OOM(out of memory,内存耗尽)、shuffle(置乱)问题、空任务小文件过多等,上述问题大多是开发者自己通过查看任务运行日志,然后依靠自己的经验优化代码和资源申请配置来解决的,缺乏一个自动优化机制和优化模型,帮助开发者积累最佳的优化经验。并且,Hadoop这种大数据处理系统由于需要更强的扩展能力以及非结构化数据支持,没有对诸如数据分布等方面的问题做出很多优化。
因此,有必要提供一种新的大数据处理方法。
【发明内容】
本发明的目的在于提供一种大数据处理方法、装置、电子设备及存储介质,以解决现有技术中无法进行计算资源分配优化的技术问题。
本发明的技术方案如下:提供一种大数据处理方法,包括:
获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;
根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;
根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源。
优选地,所述获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组,包括:
获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量;
当所述数据量超过第一预设阈值时,根据所述数据量确定所述主键的分组数量N,其中,N为自然数;
将所述主键加上1到分组数量N之间的数字分别得到N个分组主键,根据所述分组主键创建所述主键的分组主键表;
将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联。
优选地,所述将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联之后,还包括:
当所述大数据处理任务执行完毕后,去除所述分组主键后的数字,得到原始的主键;
将各所述分组主键的数据进行合并,将合并后的数据与原始的主键进行重新关联。
优选地,所述根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,包括:
获取参与所述大数据处理任务的数据表以及所述数据表的元数据信息,其中,所述元数据信息包括表结构、表文件存放位置、文件个数以及文件容量;
对所述大数据处理任务进行解析,获取所述大数据处理任务所需的操作以及各操作的关联关系;
根据所述数据表的元数据信息、所述操作以及所述各操作的关联关系生成执行计划树;
计算所述执行计划树中每个操作的代价;根据得到的每个执行计划树的每一操作的代价,确定每个执行计划树的代价。
优选地,所述执行计划树包括扫描操作、过滤操作、投影操作、广播连接操作、洗牌哈希连接操作、排序合并连接操作和分组操作中的一种或多种;
所述计算所述执行计划树中每个操作的代价,包括:
若计划树中包括扫描操作,则计算每个计划树中扫描操作的I/O代价;
若计划树中包括过滤操作,则计算每个计划树中过滤操作的CPU计算代价;
若计划树中包括投影操作,则计算每个计划树中投影操作的CPU计算代价;
若计划树中包括广播连接操作,则计算每个计划树中广播连接操作的网络传输代价以及CPU计算代价;
若计划树中包括洗牌哈希连接操作,则计算每个计划树中洗牌哈希连接操作的I/O代价、网络传输代价以及CPU计算代价;
若计划树中包括排序合并连接操作,则计算每个计划树中排序合并连接操作的I/O代价、网络传输代价以及CPU计算代价;
若计划树中包括分组操作,则计算每个计划树中分组操作的I/O代价、网络传输代价以及CPU计算代价。
优选地,所述根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源,包括:
根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;
根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务,其中,所述第二统计信息为历史任务的执行情况记录,所述第二统计信息包括任务名称、执行时间、数据源信息、执行过程信息、运行情况以及资源使用情况;
从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个;
将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源。
优选地,所述从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个之前,还包括:
获取预设时间周期内的集群服务器的状态信息,其中,所述状态信息包括资源种类和空闲资源量;
相应地,所述从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个,包括:
从获取的所有历史任务中筛选计算资源小于空闲资源量的历史任务;
从筛选的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个。
本发明的另一技术方案如下:提供一种大数据处理装置,包括:
数据分布优化模块,用于获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;
代价优化模块,用于根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;
历史优化模块,用于根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源。
本发明的另一技术方案如下:提供一种电子设备,所述电子设备包括处理器、以及与所述处理器耦接的存储器,所述存储器存储有可被所述处理器执行的程序指令;所述处理器执行所述存储器存储的所述程序指令时实现上述的大数据处理方法。
本发明的另一技术方案如下:提供一种存储介质,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现上述的大数据处理方法。
本发明的有益效果在于:本发明的大数据处理方法、装置、电子设备及存储介质,首先,获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;然后,根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;然后,根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源;通过上述方式,能够充分利用统计信息,将数据分布优化、基于代价优化以及基于历史优化相结合进行大数据处理,在消除数据倾斜后再进行代价优化,将代价优化所得最优执行计划树按照历史任务的统计信息进行计算资源分配,最大限度节约计算资源。
【附图说明】
图1为本发明第一实施例的大数据处理方法的流程图;
图2为本发明第二实施例的大数据处理方法的流程图;
图3为本发明第三实施例的大数据处理装置的结构示意图;
图4为本发明第四实施例的电子设备的结构示意图;
图5为本发明第五实施例的存储介质的结构示意图。
【具体实施方式】
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本发明第一实施例的大数据处理方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该大数据处理方法包括步骤:
S101,获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组。
在步骤S101中,数据表会参与不同的大数据处理任务,参与待执行的大数据处理任务的数据表也参与过历史大数据任务,第一统计信息为该数据表参与过的历史大数据任务的日志,所述日志包括输入数据量以及每个主键的数据量,例如,输入数据记录数(rowcount)、重复度最高的数据(top values)以及直方图(histogram)。在进行shuffle的时候,必须将各个节点上相同的主键(key)拉取到某个节点上的一个task来进行处理,比如按照主键(key)进行聚合或join等操作,根据该数据表参与过的历史大数据任务的第一统计信息,能够反映出主键(key)的数据量(数据条数),例如,对于主键a,其对应的数据条数为100;而主键b对应的数据条数为100000。对于参与大数据处理任务的数据表中每个主键,根据第一统计信息确定所述主键的数据量,如果某些主键(key)对应的数据量特别大,而一些主键(key)对应的数据量较小,在对主键(key)进行聚合或join等操作时,task分配数据量不均,导致某些task分配的数据量特别大,例如,主键b所在节点需处理的数据量是主键a所在节点的1000倍,产生了数据倾斜,为了控制每个节点处理的数据量,当主键的数据量超过第一预设阈值时,将该主键的数据进行打散,平均分到不同的主键(Key)上,保证数据分布合理。
在一个可选的实施方式中,具体地,步骤S101具体包括:
S1011,获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量。
S1012,当所述数据量超过第一预设阈值时,根据所述数据量确定所述主键的分组数量N,其中,N为自然数。
其中,分组数量N可以根据数据量确定,数据量越大,则分组数量N越大。
S1013,将所述主键加上1到分组数量N之间的数字分别得到N个分组主键,得到所述主键的分组主键表。
其中,N个分组主键分别为原主键+1、原主键+2、原主键+3、……、原主键+N,根据N个分组主键构建用于记录分组主键的分组主键表。
S1014,将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联。
其中,将所述主键的数据平均分配到N个分组主键上之后,每个分组主键的数据量均小于第一预设阈值,实现了数据分布的优化,当执行大数据处理任务时,采用不同task任务处理不同的分组主键的数据,其中,同一个task任务处理一个分组主键的分组数据。也就是说,在后续执行该大数据处理任务时,不会出现某节点计算量明显偏高的情况。
进一步地,在步骤S1014之后还包括:S1015,当大数据处理任务执行完后,去除分组主键后的数字,得到原始的主键;S1016,将分组主键的数据进行合并,将合并后的数据与原始的主键进行重新关联。
在本实施例中,当大数据处理任务执行完后,将数据表还原,以免影响其他大数据任务的执行。
S102,根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树。
在步骤S102中,大数据处理任务为MapReduce任务,例如,大数据处理任务包括数据查询任务,涉及操作包括扫描(scan)操作、过滤(fil ter)操作、投影(project)操作、广播连接(broatcast join)操作、洗牌哈希连接(shuffle hash join)操作、排序合并连接(sort merge join)操作和分组(group by)操作等操作中的一种或多种。对于数据查询任务来说,网络传输、输入(Input,I)/输出(Output,O)和中央处理器(Central ProcessingUnit,CPU)计算为数据查询时的主要开销。
在本实施例中,解析这个MapReduce任务所涉及的表、元数据清单,解析MapReduce的任务关联关系,解析形成执行计划,统计执行计划步骤所需要使用的资源。MapReduce任务的执行计划会虚拟成树状结构,位于最上层的树就是底层基础数据,也就是基表;位于下层节点的树会依赖位于上层节点的树的结果;树与树之间会有关联关系。
具体地,步骤S102中的建立执行计划树及确定执行计划树代价可以通过以下步骤S1021至步骤S1024实现:
S1021,获取参与所述大数据处理任务的数据表以及所述数据表的元数据信息,其中,所述元数据信息包括表结构、表文件存放位置、文件个数以及文件容量;
S1022,对所述大数据处理任务进行解析,获取所述大数据处理任务所需的操作以及各操作的关联关系;
S1023,根据所述数据表的元数据信息、所述操作以及所述各操作的关联关系生成执行计划树;
S1024,计算所述执行计划树中每个操作的代价;根据得到的每个执行计划树的每一操作的代价,确定每个执行计划树的代价。
例如,要进行一个文件查询,会先去查询这个文件所在地址,容量信息,如果这个文件很大,那么需要花费比较大的代价进行遍历。
在一个可选的实施方式中,一个执行计划树可以分为多个阶段(stage),每个stage可以包括一个或多个操作,若这多个stage中存在可以并行执行的stage,对每一stage,可以统计该stage包括操作的代价的和,将获得的代价和作为该stage的代价;统计各stage的代价的和,获得该计划树的代价。
由于大数据处理任务在服务器执行完成的,此处的服务器可以为单个服务器也可以为服务器集群,不同的服务器集群环境中,硬件配置不同,例如,CPU的核数和内存不同,网络传输不同,磁盘I/O不同。在硬件设备的属性文件中,配置有性能参数,进一步地,根据预设的CPU计算性能参数、预设的网络传输性能参数和预设的磁盘I/O性能参数,分别确定每个所述执行计划树中每一操作的代价,其中,每一操作的代价包括CPU计算代价、和/或网络传输代价、和/或磁盘I/O代价。更进一步地,预设的CPU计算性能参数、预设的网络传输性能参数和预设的磁盘I/O性能参数可以是根据历史任务的统计信息确定的。
下面以大数据处理任务为数据查询任务为例进行具体说明,由于执行计划树中可以包括扫描scan操作、过滤filter操作、投影project操作、广播连接broatcast join操作、洗牌哈希连接shuffle hash join操作、排序合并连接sort merge join操作和分组groupby操作中的一种或多种。若计划树中包括scan操作,则计算每个计划树中scan操作的I/O代价;若计划树中包括filter操作,则计算每个计划树中filter操作的CPU计算代价;若计划树中包括project操作,则计算每个计划树中project操作的CPU计算代价;若计划树中包括broatcast join操作,则计算每个计划树中broatcast join操作的网络传输代价以及CPU计算代价;若计划树中包括shuffle hash join操作,则计算每个计划树中shuffle hashjoin操作的I/O代价、网络传输代价以及CPU计算代价;若计划树中包括sort merge join操作,则计算每个计划树中sort merge join操作的I/O代价、网络传输代价以及CPU计算代价;若计划树中包括group by操作,则计算每个计划树中group by操作的I/O代价、网络传输代价以及CPU计算代价。
S103,根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源。
在步骤S103中,第二统计信息为历史任务的执行情况记录,具体地,第二统计信息包括任务名称、执行时间、数据源信息、运行情况以及资源使用情况,其中,资源使用情况包括CPU使用率、内存使用率、磁盘使用信息以及网络传输使用信息。
在步骤S103中,计算资源包括CPU核数、内存大小、磁盘I/O数据以及网络传输数据。
具体地,步骤S103可以通过以下步骤S1031至步骤S1034实现:
S1031,根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;
其中,大数据处理任务的计算数据量为大数据处理任务涉及的数据源的大小,例如,100M,100G,300G,大数据处理任务的计算数据量越大,消耗计算资源越多;所述任务量可以为最优执行计划树涉及的Task数量,例如,最优执行计划树包括一个或多个Job,每个Job包括至少一个Stage,每个Stage包括多个Task,任务量为不同Job的每个Stage的Task数量之和,任务量越大,消耗计算资源越多。
S1032,根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务;
其中,第二统计信息为历史任务的执行情况记录,所述第二统计信息包括任务名称、执行时间、数据源信息、执行过程信息、运行情况以及资源使用情况。具体地,在步骤S1032中,根据历史任务的第二统计信息中的数据源信息确定各历史任务的计算数据量;根据历史任务的第二统计信息中的执行过程信息以及运行情况确定各历史任务的任务量;针对每个历史任务,分别对比所述大数据处理任务和所述历史任务的计算数据量及任务量;获取计算数据量和任务量均匹配的所述历史任务。其中,当历史任务的计算数据量与大数据处理任务的计算数据量的差值的绝对值小于预设数据量阈值时,判断二者的计算数据量匹配;当历史任务的任务量与大数据处理任务的任务量的差值的绝对值小于预设任务量阈值时,判断二者的任务量匹配。
S1033,从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个;
其中,在计算数据量和任务量接近的情况下,执行时间越短所需消耗的计算资源越大,所需的并发量越多。
S1034,将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源。
进一步地,在实际应用场景中,一个大数据处理任务往往不止执行一次,会多次重复执行。还可以在步骤S1034之后根据当前待执行的大数据处理任务之前的执行情况对所确定的并发量和计算资源进行调整。
图2是本发明第二实施例的大数据处理方法的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该大数据处理方法包括步骤:
S201,获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组。
S202,根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树。
步骤S201和步骤S202分别参见第一实施例的步骤S101和步骤S102,在此不进行一一赘述。
S203,获取预设时间周期内的集群服务器的状态信息,其中,所述状态信息包括资源种类和空闲资源量。
在本实施例中,在确定大数据处理任务的并发量和计算资源时,考虑服务器的状态信息,实施动态资源调配,其中,所述大数据处理任务的预估处理时间位于预设时间周期的范围内。
S204,根据所述最优执行计划树、历史任务的第二统计信息以及所述集群服务器的状态信息确定所述大数据处理任务的并发量和计算资源。
步骤S204可以参考第一实施例的步骤S103,不同之处在于,在步骤S204中,考虑集群服务器的状态信息,根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务;从匹配的所有历史任务中筛选计算资源小于空闲资源量的历史任务;从筛选的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个。最后,将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源。其中,资源种类可以包括CPU、内存、网络I/O和磁盘I/O。
S205,将大数据处理任务的并发量和计算资源上传至区块链中,以使得所述区块链对大数据处理任务的并发量和计算资源进行加密存储。
具体地,基于大数据处理任务的并发量和计算资源得到对应的摘要信息,具体来说,摘要信息大数据处理任务的并发量和计算资源进行散列处理得到,比如利用sha256s算法处理得到。将摘要信息上传至区块链可保证其安全性和对用户的公正透明性。用户设备可以从区块链中下载得该摘要信息,以便查证大数据处理任务的并发量和计算资源是否被篡改。本示例所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
图3是本发明第三实施例的大数据处理装置的结构示意图。如图3所示,该装置30包括数据分布优化模块31、代价优化模块32和历史优化模块33。
其中,数据分布优化模块31,用于获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;代价优化模块32,用于根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;历史优化模块33,用于根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源。
进一步地,数据分布优化模块31用于获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量;当所述数据量超过第一预设阈值时,根据所述数据量确定所述主键的分组数量N,其中,N为自然数;将所述主键加上1到分组数量N之间的数字分别得到N个分组主键,根据所述分组主键创建所述主键的分组主键表;将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联。
进一步地,数据分布优化模块31还用于当所述大数据处理任务执行完毕后,去除所述分组主键后的数字,得到原始的主键;将各所述分组主键的数据进行合并,将合并后的数据与原始的主键进行重新关联。
进一步地,代价优化模块32用于获取参与所述大数据处理任务的数据表以及所述数据表的元数据信息,其中,所述元数据信息包括表结构、表文件存放位置、文件个数以及文件容量;对所述大数据处理任务进行解析,获取所述大数据处理任务所需的操作以及各操作的关联关系;根据所述数据表的元数据信息、所述操作以及所述各操作的关联关系生成执行计划树;计算所述执行计划树中每个操作的代价;根据得到的每个执行计划树的每一操作的代价,确定每个执行计划树的代价。
进一步地,所述执行计划树包括扫描操作、过滤操作、投影操作、广播连接操作、洗牌哈希连接操作、排序合并连接操作和分组操作中的一种或多种;代价优化模块32用于若计划树中包括扫描操作,则计算每个计划树中扫描操作的I/O代价;若计划树中包括过滤操作,则计算每个计划树中过滤操作的CPU计算代价;若计划树中包括投影操作,则计算每个计划树中投影操作的CPU计算代价;若计划树中包括广播连接操作,则计算每个计划树中广播连接操作的网络传输代价以及CPU计算代价;若计划树中包括洗牌哈希连接操作,则计算每个计划树中洗牌哈希连接操作的I/O代价、网络传输代价以及CPU计算代价;若计划树中包括排序合并连接操作,则计算每个计划树中排序合并连接操作的I/O代价、网络传输代价以及CPU计算代价;若计划树中包括分组操作,则计算每个计划树中分组操作的I/O代价、网络传输代价以及CPU计算代价。
进一步地,历史优化模块33用于根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务,其中,所述第二统计信息为历史任务的执行情况记录,所述第二统计信息包括任务名称、执行时间、数据源信息、执行过程信息、运行情况以及资源使用情况;从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个;将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源。
进一步地,历史优化模块33还用于获取预设时间周期内的集群服务器的状态信息,其中,所述状态信息包括资源种类和空闲资源量。
相应地,所述从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个,包括:从获取的所有历史任务中筛选计算资源小于空闲资源量的历史任务;从筛选的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个。
图4是本发明第四实施例的电子设备的结构示意图。如图4所示,该电子设备40包括处理器41及和处理器41耦接的存储器42。
存储器42存储有用于实现上述任一实施例的所述大数据处理方法的程序指令。
处理器41用于执行存储器42存储的程序指令以进行大数据处理。
其中,处理器41还可以称为CPU(Central Processing Unit,中央处理单元)。处理器41可能是一种集成电路芯片,具有信号的处理能力。处理器41还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
参阅图5,图5为本发明第五实施例的存储介质的结构示意图。本发明实施例的存储介质存储有能够实现上述所有方法的程序指令51,所述存储介质可以是非易失性,也可以是易失性。其中,该程序指令51可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
Claims (9)
1.一种大数据处理方法,其特征在于,包括:
获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;
根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;
根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源;
其中,所述根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源,包括:
根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;
根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务,其中,所述第二统计信息为历史任务的执行情况记录,所述第二统计信息包括任务名称、执行时间、数据源信息、执行过程信息、运行情况以及资源使用情况;
从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个;
将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源;
将所述大数据处理任务的并发量和计算资源上传至区块链中,以使得所述区块链对大数据处理任务的并发量和计算资源进行加密存储;
所述根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务包括:
根据历史任务的第二统计信息中的数据源信息确定各历史任务的计算数据量;
根据历史任务的第二统计信息中的执行过程信息以及运行情况确定各历史任务的任务量;
针对每个历史任务,分别对比所述大数据处理任务和所述历史任务的计算数据量及任务量;
获取计算数据量和任务量均匹配的所述历史任务;其中,当历史任务的计算数据量与大数据处理任务的计算数据量的差值的绝对值小于预设数据量阈值时,判断二者的计算数据量匹配;当历史任务的任务量与大数据处理任务的任务量的差值的绝对值小于预设任务量阈值时,判断二者的任务量匹配。
2.根据权利要求1所述的大数据处理方法,其特征在于,所述获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组,包括:
获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量;
当所述数据量超过第一预设阈值时,根据所述数据量确定所述主键的分组数量N,其中,N为自然数;
将所述主键加上1到分组数量N之间的数字分别得到N个分组主键,根据所述分组主键创建所述主键的分组主键表;
将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联。
3.根据权利要求2所述的大数据处理方法,其特征在于,所述将所述主键的数据平均分为N组,将N组数据分别与所述分组主键表中N个分组主键进行关联之后,还包括:
当所述大数据处理任务执行完毕后,去除所述分组主键后的数字,得到原始的主键;
将各所述分组主键的数据进行合并,将合并后的数据与原始的主键进行重新关联。
4.根据权利要求1所述的大数据处理方法,其特征在于,所述根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,包括:
获取参与所述大数据处理任务的数据表以及所述数据表的元数据信息,其中,所述元数据信息包括表结构、表文件存放位置、文件个数以及文件容量;
对所述大数据处理任务进行解析,获取所述大数据处理任务所需的操作以及各操作的关联关系;
根据所述数据表的元数据信息、所述操作以及所述各操作的关联关系生成执行计划树;
计算所述执行计划树中每个操作的代价;根据得到的每个执行计划树的每一操作的代价,确定每个执行计划树的代价。
5.根据权利要求4所述的大数据处理方法,其特征在于,所述执行计划树包括扫描操作、过滤操作、投影操作、广播连接操作、洗牌哈希连接操作、排序合并连接操作和分组操作中的一种或多种;
所述计算所述执行计划树中每个操作的代价,包括:
若计划树中包括扫描操作,则计算每个计划树中扫描操作的I/O代价;
若计划树中包括过滤操作,则计算每个计划树中过滤操作的CPU计算代价;
若计划树中包括投影操作,则计算每个计划树中投影操作的CPU计算代价;
若计划树中包括广播连接操作,则计算每个计划树中广播连接操作的网络传输代价以及CPU计算代价;
若计划树中包括洗牌哈希连接操作,则计算每个计划树中洗牌哈希连接操作的I/O代价、网络传输代价以及CPU计算代价;
若计划树中包括排序合并连接操作,则计算每个计划树中排序合并连接操作的I/O代价、网络传输代价以及CPU计算代价;
若计划树中包括分组操作,则计算每个计划树中分组操作的I/O代价、网络传输代价以及CPU计算代价。
6.根据权利要求1所述的大数据处理方法,其特征在于,所述从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个之前,还包括:
获取预设时间周期内的集群服务器的状态信息,其中,所述状态信息包括资源种类和空闲资源量;
相应地,所述从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个,包括:
从获取的所有历史任务中筛选计算资源小于空闲资源量的历史任务;
从筛选的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个。
7.一种大数据处理装置,其特征在于,包括:
数据分布优化模块,用于获取参与大数据处理任务的数据表的第一统计信息,根据所述第一统计信息分析所述数据表中每个主键的数据量,当所述数据量超过第一预设阈值时,将所述主键的数据划分为多组;
代价优化模块,用于根据所述大数据处理任务建立至少一个执行计划树,确定每个所述执行计划树的代价,将代价最低的所述执行计划树作为最优执行计划树;
历史优化模块,用于根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源;
其中,所述根据所述最优执行计划树以及历史任务的第二统计信息确定所述大数据处理任务的并发量和计算资源,包括:
根据所述最优执行计划树确定所述大数据处理任务的计算数据量和任务量;
根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务,其中,所述第二统计信息为历史任务的执行情况记录,所述第二统计信息包括任务名称、执行时间、数据源信息、执行过程信息、运行情况以及资源使用情况;
从获取的所有历史任务中选择执行时间与所述大数据处理任务的预设执行时间最接近的一个;
将选择的历史任务的并发量和计算资源作为所述大数据处理任务的并发量和计算资源;
将所述大数据处理任务的并发量和计算资源上传至区块链中,以使得所述区块链对大数据处理任务的并发量和计算资源进行加密存储;
所述根据第二统计信息从历史任务中获取与所述大数据处理任务的计算数据量和任务量相匹配的历史任务包括:
根据历史任务的第二统计信息中的数据源信息确定各历史任务的计算数据量;
根据历史任务的第二统计信息中的执行过程信息以及运行情况确定各历史任务的任务量;
针对每个历史任务,分别对比所述大数据处理任务和所述历史任务的计算数据量及任务量;
获取计算数据量和任务量均匹配的所述历史任务;其中,当历史任务的计算数据量与大数据处理任务的计算数据量的差值的绝对值小于预设数据量阈值时,判断二者的计算数据量匹配;当历史任务的任务量与大数据处理任务的任务量的差值的绝对值小于预设任务量阈值时,判断二者的任务量匹配。
8.一种电子设备,其特征在于,所述电子设备包括处理器、以及与所述处理器耦接的存储器,所述存储器存储有可被所述处理器执行的程序指令;所述处理器执行所述存储器存储的所述程序指令时实现权利要求1至权利要求6任一项所述的大数据处理方法。
9.一种存储介质,其特征在于,所述存储介质内存储有程序指令,所述程序指令被处理器执行时实现权利要求1至权利要求6任一项所述的大数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110123219.0A CN112764935B (zh) | 2021-01-29 | 2021-01-29 | 大数据处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110123219.0A CN112764935B (zh) | 2021-01-29 | 2021-01-29 | 大数据处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764935A CN112764935A (zh) | 2021-05-07 |
CN112764935B true CN112764935B (zh) | 2023-06-30 |
Family
ID=75706586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110123219.0A Active CN112764935B (zh) | 2021-01-29 | 2021-01-29 | 大数据处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764935B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434702A (zh) * | 2021-07-27 | 2021-09-24 | 支付宝(杭州)信息技术有限公司 | 一种用于图计算的自适应控制方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014136302A1 (ja) * | 2013-03-04 | 2014-09-12 | 日本電気株式会社 | タスク管理装置及びタスク管理方法 |
CN106874100A (zh) * | 2015-12-10 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 计算资源分配方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293938A (zh) * | 2016-08-05 | 2017-01-04 | 飞思达技术(北京)有限公司 | 解决大数据计算过程中数据倾斜的方法 |
CN110019341B (zh) * | 2017-12-08 | 2021-07-23 | 杭州海康威视数字技术股份有限公司 | 一种数据查询方法及装置 |
CN110968425B (zh) * | 2019-11-22 | 2022-12-06 | 中盈优创资讯科技有限公司 | 一种任务资源动态分配方法及系统 |
-
2021
- 2021-01-29 CN CN202110123219.0A patent/CN112764935B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014136302A1 (ja) * | 2013-03-04 | 2014-09-12 | 日本電気株式会社 | タスク管理装置及びタスク管理方法 |
CN106874100A (zh) * | 2015-12-10 | 2017-06-20 | 阿里巴巴集团控股有限公司 | 计算资源分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112764935A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200341657A1 (en) | System and method for performing live partitioning in a data store | |
Gautam et al. | A survey on job scheduling algorithms in big data processing | |
CN107766568B (zh) | 使用列式数据库中的直方图进行有效查询处理 | |
US9501562B2 (en) | Identification of complementary data objects | |
US20190102446A1 (en) | System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment | |
US8392380B2 (en) | Load-balancing and scaling for analytics data | |
CN110347651B (zh) | 基于云存储的数据同步方法、装置、设备及存储介质 | |
US10877669B1 (en) | System and method for providing a committed throughput level in a data store | |
US8898422B2 (en) | Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration | |
JP2014525082A (ja) | 規模変更可能なデータ記憶サービスを実装するためのシステムおよび方法 | |
CN111046045B (zh) | 处理数据倾斜的方法、装置、设备及存储介质 | |
Tsalouchidou et al. | Scalable dynamic graph summarization | |
CN112395293B (zh) | 分库分表方法、分库分表装置、分库分表设备及存储介质 | |
US9305076B1 (en) | Flattening a cluster hierarchy tree to filter documents | |
CN112632077A (zh) | 基于redis的数据存储方法、装置、设备及存储介质 | |
CN112925792B (zh) | 数据存储控制方法、装置、计算设备及介质 | |
WO2015180340A1 (zh) | 一种数据挖掘方法及装置 | |
Ma et al. | Dependency-aware data locality for MapReduce | |
CN113672375B (zh) | 资源分配预测方法、装置、设备及存储介质 | |
CN113485999A (zh) | 数据清理方法、装置和服务器 | |
CN112764935B (zh) | 大数据处理方法、装置、电子设备及存储介质 | |
CN109165201B (zh) | 日志的归并方法及终端设备 | |
CN116982035A (zh) | 分布式数据系统中索引质量的测量与改进 | |
CN110134646A (zh) | 知识平台服务数据存储与集成方法及系统 | |
CN113806354B (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 |