CN112286917B - 数据处理方法、装置、电子设备和存储介质 - Google Patents
数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112286917B CN112286917B CN202011141922.6A CN202011141922A CN112286917B CN 112286917 B CN112286917 B CN 112286917B CN 202011141922 A CN202011141922 A CN 202011141922A CN 112286917 B CN112286917 B CN 112286917B
- Authority
- CN
- China
- Prior art keywords
- data sets
- data
- series
- data set
- sub
- 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.)
- Expired - Fee Related
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000004807 localization Effects 0.000 claims description 16
- 238000005192 partition Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 8
- 238000005457 optimization Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据处理方法、装置、电子设备和存储介质,通过基于当前计算任务所需的系列数据集中至少两个数据集的大小,对系列数据集进行分批,得到预设数量的子系列数据集,子系列数据集中不同数据集的大小相近,采用多线程同步工具类,对子系列数据集中的数据集进行并行处理,对子系列数据集的处理结果进行存储,通过分批操作和采用多线程同步工具类,在避免了数据倾斜发生的同时,实现了对数据的并行处理,实现了对Spark计算任务的执行过程的优化,提高了Spark计算任务的运行速度。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种数据处理方法、装置、电子设备和存储介质。
背景技术
Apache Spark(以下简称Spark)是一款强大的基于内存计算的大数据处理引擎,可以实现大数据领域的离线批处理、结构化查询语言(Structured Query Language,SQL)类处理、流式计算、实时计算、机器学习、图计算等各种不同类型的计算操作,并且具有快速、通用、可扩展等优点,所以,具有广泛的应用前景。
很多数据产品或者业务场景下,Spark需要在对海量的数据进行清洗、加工的基础上,再通过计算获得最终的结果数据,由于数据量大、数据量不均衡、集群硬件资源有限等问题,现有技术中,在一些情况下(如发生数据倾斜),Spark任务的执行速度可能比普通计算引擎还慢,这样就完全体现不出Spark作为一种快速大数据计算引擎的优势。
因此,如何对Spark作业进行性能优化成为现有技术中亟需解决的问题。
发明内容
本申请实施例提供一种数据处理方法、装置、电子设备和存储介质,实现了对Spark的性能优化,提高了Spark的运行速度。
第一方面,本申请实施例提供一种数据处理方法,包括:
基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;
对所述子系列数据集的处理结果进行存储。
可选地,所述基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,包括:
根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定所述至少两个数据集的顺序;
生成存储所述至少两个数据集的顺序的哈希链表;
根据所述哈希链表中数据集的顺序,按照预设分批条件对所述系列数据集进行分批,得到预设数量的子系列数据集。
可选地,所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理,包括:
确定对所述子系列数据集中数据集进行处理所需的线程数和所述多线程同步工具类的初始值;
从线程池中获取与所述线程数匹配的线程;
采用所述多线程同步工具类,控制所述线程对所述子系列数据集中的数据集进行并行处理。
可选地,所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理之前,所述方法还包括:
确定所述子系列数据集的本地化级别;
确定所述子系列数据集中数据集与工作节点的对应关系;
根据所述本地化级别和所述对应关系,对所述子系列数据集中的数据集进行本地化。
可选地,所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理之前,所述方法还包括:
采用过滤算子和分区合并算子,对所述子系列数据集中的数据集进行压缩处理。
第二方面,本申请实施例提供一种数据处理装置,包括:
第一处理模块,用于基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
第二处理模块,用于采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;对所述子系列数据集的处理结果进行存储。
可选地,所述第一处理模块具体用于:
根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定所述至少两个数据集的顺序;
生成存储所述至少两个数据集的顺序的哈希链表;
根据所述哈希链表中数据集的顺序,按照预设分批条件对所述系列数据集进行分批,得到预设数量的子系列数据集。
可选地,所述第二处理模块具体用于:
确定对所述子系列数据集中数据集进行处理所需的线程数和所述多线程同步工具类的初始值;
从线程池中获取与所述线程数匹配的线程;
采用所述多线程同步工具类,控制所述线程对所述子系列数据集中的数据集进行并行处理。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述第一方面所述的数据处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的数据处理方法。
本申请实施例提供的数据处理方法、装置、电子设备和存储介质,通过基于当前计算任务所需的系列数据集中至少两个数据集的大小,对系列数据集进行分批,得到预设数量的子系列数据集,子系列数据集中不同数据集的大小相近,采用多线程同步工具类,对子系列数据集中的数据集进行并行处理,对子系列数据集的处理结果进行存储,通过分批操作和采用多线程同步工具类,在避免了数据倾斜发生的同时,实现了对数据的并行处理,实现了对Spark计算任务的执行过程的优化,提高了Spark计算任务的运行速度。
附图说明
图1为本申请实施例一提供的数据处理方法的流程示意图
图2为本申请实施例提供的系列数据集与子系列数据集的关系示意图;
图3为本申请实施例二提供的数据处理方法的流程示意图;
图4为本申请实施例提供生成子系列数据集的示意图;
图5为本申请实施例三提供的数据处理方法的流程示意图;
图6为本申请实施例四提供的数据处理装置的结构示意图;
图7为本申请实施例五提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
本申请技术方案的主要思路:本申请提供一种数据处理的技术方案,用于通过排序分批、多线程同步工具类、本地化、调优算子、shuffle优化等,实现对Spark作业流程的优化,提高了对Spark计算任务的处理速度和运行效率。
实施例一
图1为本申请实施例一提供的数据处理方法的流程示意图,本实施例的方法可以由本申请实施例所提供的数据处理装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于服务器以及智能终端等电子设备中。如图1所示,本实施例的数据处理方法包括:
S101、基于当前计算任务所需的系列数据集中至少两个数据集的大小,对系列数据集进行分批,得到预设数量的子系列数据集。
本步骤中,为防止在对数据处理过程中,由于数据不均衡造成的数据倾斜,对Spark计算任务的运行速度造成影响,在确定执行当前计算任务所需的包括至少两个数据集的系列数据集之后,按照不同数据集的大小(即数据集的文件大小),对系列数据集进行分批,得到一个或多个子系列数据集,使同一个子系列数据集中不同数据集的大小相近。
其中,数据集或弹性分布式数据集(resilient distributed dataset,RDD),是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的数据可并行计算的集合,每个RDD都被分为多个分区,这些分区分别运行在分布式集群中不同的工作节点上,每个RDD的分区数,即为该RDD的并行度。
可以理解的是,建立Spark计算任务的目的在于对海量追溯数据进行计算,得到满足用户使用需求的数据结果,而数据集是对海量追溯数据进行初步处理(如根据相同的数据标签归并)后得到的,因此,执行Spark计算任务所需的数据集通常为多个。
系列数据集,是指执行当前Spark计算任务所需的所有数据集的集合,系列数据集中每个数据集有对应的标识(名称或编号等),用于对不同的数据集进行区分。每个数据集的大小可以根据数据集的标识,从工作节点的关配置文件中读取到。
可选地,在S101之前,本实施例的方法还包括:确定当前计算任务所需的系列数据集,并获取系列数据集中每个数据集的大小、标识等信息。
子系列数据集,是指对系列数据集进行分批(或分组)后得到的,本实施例中,子系列数据集至少包括两个,即预设数量为至少两个,每个子系列数据集中的数据集数量小于系列数据集中数据集的数量,所有子系列数据集中数据集的数量之和与系列数据集中数据集的数量相等。
图2为本申请实施例提供的系列数据集与子系列数据集的关系示意图,如图2所示,假设当前计算任务所需的数据集有5个,分别为命名为数据集1、数据集2、数据集3、数据集4和数据集5,则由数据集1、数据集2、数据集3、数据集4和数据集5构成系列数据集,再假设这5个数据集的大小分别为1G、10M、200M、500M和2G,以是否小于500M作为分批的标准,则由数据集2和数据集3构成子系列数据集A,由数据集1、数据集4和数据集5构成子系列数据集B,从而保证可以将较大的数据集和较小的数据集分开进行处理,避免数据倾斜的发生,提高对Spark计算任务的运行速度。
S102、采用多线程同步工具类,对子系列数据集中的数据集进行并行处理。
本步骤中,以子系列数据集为单位,采用多线程同步工具类,实现对每个子系列数据集中的数据集的并行处理,提高了对数据集的处理效率,进而提高Spark计算任务的运行速度。
可选地,本实施例中采用的多线程同步工具类为CountDownLatch,CountDownLatch通过一个计数器,来协调多个线程之间的同步,通过将计数器的初始值设置为对子系列数据集中的数据集进行并行处理所需的线程数的值,CountDownLatch对各线程的执行情况进行监控,每当监控到有一个线程完成自己的任务时,计数器的值就会减1,直到计数器的值变为0,CountDownLatch才会关闭所有线程,并重新进行初始化,从而实现对子系列数据集中不同数据集的并行处理。
示例性地,如图2所示,本步骤中,采用多线程同步工具类分别对子系列数据集A和子系列数据集B中的数据集进行并行处理,假设本步骤中先对子系列数据集A中的数据集进行并行处理,再对子系列数据集B中的数据集进行并行处理,对子系列数据集A进行并行处理所需的线程数为2,对子系列数据集B进行并行处理所需的线程数为3,则对子系列数据集A进行处理时,CountDownLatch通过初始化将计数器的初始值设置为2,当计数器的值变为0时,表示子系列数据集A中数据集已处理完毕,CountDownLatch关闭当前线程,并重新初始化,以便对子系列数据集B进行处理,具体地,将计数器的初始值设置为3,并监控各线程对数据集的处理情况,直到计数器的值变为0。
需要说明的是,对不同子系列数据集的处理顺序可以是随机的,也可以根据预先设置的规则进行确定,例如,先对数据集较大的子系列数据集进行处理,再对数据集较小的子系列数据集进行处理,或者,先对数据集多的子系列数据集进行处理,再对数据集少的子系列数据集进行处理,具体可根据实现情况进行设定,此处不作限制。
示例性地,如图2所示,可以先对子系列数据集A中的数据集进行并行处理,再对子系列数据集B中的数据集进行并行处理,也可以先对子系列数据集B中的数据集进行并行处理,再对子系列数据集A中的数据集进行并行处理,只要保证将子系列数据集A中的数据集与子系列数据集B中的数据集分开进行处理即可。
可选地,为进一步优化Spark计算任务,本步骤中,在对子系列数据集中的数据集进行并行处理过程中,还可以对shuffle(洗牌)操作进行优化。示例性,根据是否需要对数据进行排序,选择合理的shuffle管理器执行shuffle操作,具体地,由于排序洗牌管理器(SortShuffleManager)默认会对数据进行排序,因此,如果当前场景需要对数据进行排序,则使用SortShuffleManager作为默认shuffle管理器,控制Spark执行shuffle操作;如果当前场景不需要对数据进行排序,可以通过旁路(bypass)机制或采用哈希洗牌管理器(HashShuffleManager),以避免排序,从而提高Spark计算任务的运行效率,同时也能提供较好的磁盘读写性能。
可选地,在S102之前,本实施例的方法还包括:确定子系列数据集的本地化级别以及子系列数据集中数据集与工作节点的对应关系,根据本地化级别和对应关系,对子系列数据集中的数据集进行本地化。
Spark中数据的本地化级别有PROCESS_LOCAL、NODE_LOCAL、NO_PREF、RACK_LOCAL和ANY五种,本步骤中,根据Spark实际工作场景,确定对子系列数据集进行本地化处理的本地化级别,并确定子系列数据集中数据集与工作节点的对应的关系(即数据集所在的工作节点位置),再根据确定的本地级级别和对应关系对子系列数据集中的数据集进行本地化和持久化,从而减小执行S102时,数据和操作的代码之间的隔离,减少任务运行所需的时间和IO传输损耗。
可以理解是,本步骤中,为保证处理效率,对于不同的子系列数据集的本地化处理可以同时进行。
可选地,在S102之前,本实施例的方法还包括:采用过滤算子和分区合并算子,对子系列数据集中的数据集进行压缩处理。具体地:
通过过滤算子对每个数据集中的数据进行过滤,去除掉没有实际意义或重复的数据,例如某个数据集原来的数据量大小为500M,经过滤算子处理后变为400M,减小了数据集的数据量,进而提高了Spark计算任务的执行效率,减少了Spark计算任务的运行时间。
通过分区合并算子对数据集进行重新分区,将数据量较少的两个或多个分区进行合并,将数据压缩到更少的分区中,例如,某个数据集原来的分区数为1000个,经分区合并算子处理后,分区数变为800个,减少了对该数据集进行处理所需的任务数,从而提高Spark计算任务的执行效率,减少Spark计算任务的运行时间。
S103、对子系列数据集的处理结果进行存储。
本步骤中,在S102之后,对子系列数据集的处理结果进行存储,可以理解的是,由Spark的计算特点可知,对数据集的处理的结果为生成新的数据集,因此,本步骤中存储的处理结果为数据集。具体地,本步骤中将处理结果存储在Hadoop分布式文件系统(Hadoopdistributed file system,HDFS)上。
本实施例中,通过基于当前计算任务所需的系列数据集中至少两个数据集的大小,对系列数据集进行分批,得到预设数量的子系列数据集,子系列数据集中不同数据集的大小相近,采用多线程同步工具类,对子系列数据集中的数据集进行并行处理,对子系列数据集的处理结果进行存储,通过分批操作和采用多线程同步工具类,在避免了数据倾斜发生的同时,实现了对数据的并行处理,实现了对Spark计算任务的执行过程的优化,提高了Spark计算任务的运行速度。
实施例二
图3为本申请实施例二提供的数据处理方法的流程示意图,在一种可通过的实现方式中,如图3所示,本实施例中可通过如下步骤实现对系列数据集的分批:
S1011、根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定至少两个数据集的顺序。
本步骤中,根据各数据集的大小(即数据集的文件大小),执照从大到小或从小到大的顺序,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定至少两个数据集的顺序。
S1012、生成存储至少两个数据集的顺序的哈希链表。
本步骤中,按照S1012排好的顺序,将对应数据集的信息(如名称)存储在哈希链中,得到存储至少两个数据集的顺序的哈希链表,为后续对系列数据集进行分批提供便利性。
S1013、根据哈希链表中数据集的顺序,按照预设分批条件对系列数据集进行分批,得到预设数量的子系列数据集。
本步骤中,根据S1012中生成的哈希链表中数据集的顺序,按照预设分批条件对系列数据集进行分批,得到预设数量的子系列数据集,并且各子系列数据集中不同数据集的大小相近。
其中,预设分批条件是预先设置的系列数据集进行划分得到子系列数据集的规则,在对系列数据集中数据集排好序之后,只要确定出每一批子系列数据集中数据集的数量即可,相应地,预设分批条件可以包括子系列数据集的数量和/或子系列数据集中数据集的数量,例如,在要求每个子系列数据集中的数据集的数量均等的情况下,在系列数据集中数据集的数量(总数据集的数量)确定以后,就可以根据期望的子系列数据集的数量或每个子系列数据集中数据集的数量,对系列数据集进行分批;在不要求每个子系列数据集中的数据集的数量均等的情况下,可以同时指定期望的子系列数据集的数量和每个子系列数据集中数据集的数量,以对系列数据集进行分批。
示例性地,图4为本申请实施例提供生成子系列数据集的示意图,假设按从大到小的顺序对系列数据集中的数据集进行排序,并指定子系列数据集C由较大的数据集构成,子系列数据集D由较小的数据集构成,子系列数据集C包括2个数据集,子系列数据集D包括3个数据集,则得到如图4所示的排序和分批结果。
本实施例中,通过根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定至少两个数据集的顺序,生成存储至少两个数据集的顺序的哈希链表,根据哈希链表中数据集的顺序,按照预设分批条件对系列数据集进行分批,得到预设数量的子系列数据集,实现了根据数据集的大小对系列数据集的分批,并且保证了较大的数据集和较小的数据集被分在不同的子系列数据集中,有利于避免后续数据处理过程中,数据倾斜的发生,提高了对Spark计算任务的处理速度。
实施例三
图5为本申请实施例三提供的数据处理方法的流程示意图,在一种可通过的实现方式中,如图5所示,本实施例中可通过如下步骤实现对子系列数据集中的数据集进行并行处理:
S1021、确定对子系列数据集中数据集进行处理的所需线程数和多线程同步工具类的初始值。
本步骤中,确定对子系列数据集中数据集进行处理所需的线程数和多线程同步工作的初始值,具体包括两方面的含义,一方面,确定对子系列数据集中数据集进行处理所需的线程数,该线程数据与子系列数据集中数据集的数量相匹配,另一方面,确定多线程同步工具类的初始值(即计数器的初始值),该初始值等于前面确定的线程数。
S1022、从线程池中获取与线程数匹配的线程。
本实施例中,由于存在多个子系列数据集,并且每个子系列数据集中包括至少一个数据集,为避免反复创建并销毁线程造成的内存消耗,本实施例中预先建立线程池,线程池中存储有一定数量的线程,在使用过程中,只需要从线程池中获取一定数量的空闲线程即可,具体地,根据S1021中确定的线程数,从线程池中获取与线程数匹配的线程。
S1023、采用多线程同步工具类,控制线程对子系列数据集中的数据集进行并行处理。
本步骤中,采用多线程同步工具类的计数器,控制各线程对子系列数据集中的数据集进行并行处理,一方面,保证了对同一子系列数据集中数据集的并行处理,提高了数据处理效率,另一方面,保证对一个子系列数据集中的数据集处理完之后,再对另一个子系列数据集中的数据进行处理,避免了数据倾斜的发生。
本实施例中,通过确定对子系列数据集中数据集进行处理所需的线程数和多线程同步工具类的初始值,从线程池中获取与线程数匹配的线程,采用多线程同步工具类,控制线程对子系列数据集中的数据集进行并行处理,不仅实现了对数据的并行处理,还减少了数据处理过程中对内存的占用,有利于提高Spark计算任务的运行速度。
实施例四
图6为本申请实施例四提供的数据处理装置的结构示意图,如图6所示,本实施例中数据处理装置10包括:
第一处理模块11和第二处理模块12。
第一处理模块11,用于基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
第二处理模块12,用于采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;对所述子系列数据集的处理结果进行存储。
可选地,第一处理模块11具体用于:
根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定所述至少两个数据集的顺序;
生成存储所述至少两个数据集的顺序的哈希链表;
根据所述哈希链表中数据集的顺序,按照预设分批条件对所述系列数据集进行分批,得到预设数量的子系列数据集。
可选地,第二处理模块12具体用于:
确定对所述子系列数据集中数据集进行处理所需的线程数和所述多线程同步工具类的初始值;
从线程池中获取与所述线程数匹配的线程;
采用所述多线程同步工具类,控制所述线程对所述子系列数据集中的数据集进行并行处理。
可选地,第一处理模块11还用于:
确定所述子系列数据集的本地化级别;
确定所述子系列数据集中数据集与工作节点的对应关系;
根据所述本地化级别和所述对应关系,对所述子系列数据集中的数据集进行本地化。
可选地,可选地,第一处理模块11还用于:
采用过滤算子和分区合并算子,对所述子系列数据集中的数据集进行压缩处理。
本实施例所提供的数据处理装置可执行上述方法实施例所提供的数据处理方法,具备执行方法相应的功能模块和有益效果。本实施例的实现原理和技术效果与上述方法实施例类似,此处不再一一赘述。
实施例五
图7为本申请实施例五提供的一种电子设备的结构示意图,如图7所示,该电子设备20包括存储器21、处理器22及存储在存储器上并可在处理器上运行的计算机程序;电子设备20处理器22的数量可以是一个或多个,图7中以一个处理器22为例;电子设备20中的处理器22、存储器21可以通过总线或其他方式连接,图7中以通过总线连接为例。
存储器21作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的第一处理模块11和第二处理模块12对应的程序指令/模块。处理器22通过运行存储在存储器21中的软件程序、指令以及模块,从而执行设备/终端/服务器的各种功能应用以及数据处理,即实现上述的数据处理方法。
存储器21可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器21可进一步包括相对于处理器22远程设置的存储器,这些远程存储器可以通过网格连接至设备/终端/服务器。上述网格的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实施例六
本申请实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在由计算机处理器执行时用于执行一种数据处理方法,该方法包括:
基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;
对所述子系列数据集的处理结果进行存储。
当然,本申请实施例所提供的一种包计算机可读存储介质,其计算机程序不限于如上所述的方法操作,还可以执行本申请任意实施例所提供的数据处理方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述数据处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (9)
1.一种数据处理方法,其特征在于,包括:
基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;
对所述子系列数据集的处理结果进行存储;
其中,所述多线程同步工具类通过一个计数器,来协调多个线程之间的同步;
所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理之前,所述方法还包括:
确定所述子系列数据集的本地化级别;
确定所述子系列数据集中数据集与工作节点的对应关系;
根据所述本地化级别和所述对应关系,对所述子系列数据集中的数据集进行本地化;
其中,所述对所述子系列数据集中的数据集进行并行处理还包括:对洗牌操作进行优化。
2.根据权利要求1所述的方法,其特征在于,所述基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,包括:
根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定所述至少两个数据集的顺序;
生成存储所述至少两个数据集的顺序的哈希链表;
根据所述哈希链表中数据集的顺序,按照预设分批条件对所述系列数据集进行分批,得到预设数量的子系列数据集。
3.根据权利要求1所述的方法,其特征在于,所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理,包括:
确定对所述子系列数据集中数据集进行处理所需的线程数和所述多线程同步工具类的初始值;
从线程池中获取与所述线程数匹配的线程;
采用所述多线程同步工具类,控制所述线程对所述子系列数据集中的数据集进行并行处理。
4.根据权利要求1-3任一项 所述的方法,其特征在于,所述采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理之前,所述方法还包括:
采用过滤算子和分区合并算子,对所述子系列数据集中的数据集进行压缩处理。
5.一种数据处理装置,其特征在于,包括:
第一处理模块,用于基于当前计算任务所需的系列数据集中至少两个数据集的大小,对所述系列数据集进行分批,得到预设数量的子系列数据集,所述子系列数据集中不同数据集的大小相近;
第二处理模块,用于采用多线程同步工具类,对所述子系列数据集中的数据集进行并行处理;对所述子系列数据集的处理结果进行存储;
其中,所述多线程同步工具类通过一个计数器,来协调多个线程之间的同步;
所述第一处理模块,还用于确定所述子系列数据集的本地化级别;
确定所述子系列数据集中数据集与工作节点的对应关系;
根据所述本地化级别和所述对应关系,对所述子系列数据集中的数据集进行本地化;
其中,所述对所述子系列数据集中的数据集进行并行处理还包括:对洗牌操作进行优化。
6.根据权利要求5所述的装置,其特征在于,所述第一处理模块具体用于:
根据数据集的大小,对当前计算任务所需的系列数据集中至少两个数据集进行排序,确定所述至少两个数据集的顺序;
生成存储所述至少两个数据集的顺序的哈希链表;
根据所述哈希链表中数据集的顺序,按照预设分批条件对所述系列数据集进行分批,得到预设数量的子系列数据集。
7.根据权利要求5所述的装置,其特征在于,所述第二处理模块具体用于:
确定对所述子系列数据集中数据集进行处理所需的线程数和所述多线程同步工具类的初始值;
从线程池中获取与所述线程数匹配的线程;
采用所述多线程同步工具类,控制所述线程对所述子系列数据集中的数据集进行并行处理。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-4中任一所述的数据处理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-4中任一所述的数据处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011141922.6A CN112286917B (zh) | 2020-10-22 | 2020-10-22 | 数据处理方法、装置、电子设备和存储介质 |
PCT/CN2021/107813 WO2022083197A1 (zh) | 2020-10-22 | 2021-07-22 | 数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011141922.6A CN112286917B (zh) | 2020-10-22 | 2020-10-22 | 数据处理方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112286917A CN112286917A (zh) | 2021-01-29 |
CN112286917B true CN112286917B (zh) | 2022-10-18 |
Family
ID=74424717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011141922.6A Expired - Fee Related CN112286917B (zh) | 2020-10-22 | 2020-10-22 | 数据处理方法、装置、电子设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112286917B (zh) |
WO (1) | WO2022083197A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286917B (zh) * | 2020-10-22 | 2022-10-18 | 北京锐安科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
CN113392131A (zh) * | 2021-07-05 | 2021-09-14 | 上海幻电信息科技有限公司 | 数据处理方法、装置及计算机设备 |
CN114490673B (zh) * | 2022-04-08 | 2022-07-12 | 腾讯科技(深圳)有限公司 | 数据信息处理方法、装置、电子设备及存储介质 |
CN116149830B (zh) * | 2023-04-20 | 2023-07-04 | 北京邮电大学 | 一种基于双尺度节点调度策略的海量数据处理方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102043675B (zh) * | 2010-12-06 | 2012-11-14 | 北京华证普惠信息股份有限公司 | 一种基于任务处理请求任务量大小的线程池管理方法 |
EP3079060B1 (en) * | 2015-04-08 | 2018-03-28 | Huawei Technologies Co., Ltd. | Load balancing for large in-memory databases |
US9990223B2 (en) * | 2015-08-10 | 2018-06-05 | Salesforce.Com, Inc. | Systems and methods of improving parallel functional processing |
CN107220123A (zh) * | 2017-05-25 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种解决Spark数据倾斜方法及系统 |
CN107633001A (zh) * | 2017-08-03 | 2018-01-26 | 北京空间科技信息研究所 | 哈希分区优化方法和装置 |
CN110688344A (zh) * | 2019-09-24 | 2020-01-14 | 捷开通讯(深圳)有限公司 | 一种文件扫描方法、装置、计算机可读存储介质及终端 |
CN110727685B (zh) * | 2019-10-09 | 2022-04-22 | 苏州浪潮智能科技有限公司 | 一种基于Cassandra数据库的数据压缩方法、设备以及存储介质 |
CN110908788B (zh) * | 2019-12-02 | 2022-04-08 | 北京锐安科技有限公司 | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 |
CN111190703B (zh) * | 2019-12-11 | 2023-02-07 | 深圳平安医疗健康科技服务有限公司 | 实时数据处理方法、装置、计算机设备和存储介质 |
CN112286917B (zh) * | 2020-10-22 | 2022-10-18 | 北京锐安科技有限公司 | 数据处理方法、装置、电子设备和存储介质 |
-
2020
- 2020-10-22 CN CN202011141922.6A patent/CN112286917B/zh not_active Expired - Fee Related
-
2021
- 2021-07-22 WO PCT/CN2021/107813 patent/WO2022083197A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN112286917A (zh) | 2021-01-29 |
WO2022083197A1 (zh) | 2022-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112286917B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN109993299B (zh) | 数据训练方法及装置、存储介质、电子装置 | |
US7650331B1 (en) | System and method for efficient large-scale data processing | |
Chen et al. | Machine learning-based configuration parameter tuning on hadoop system | |
WO2017112077A1 (en) | Optimizing skewed joins in big data | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
Senthilkumar et al. | A survey on job scheduling in big data | |
Mayer et al. | Out-of-core edge partitioning at linear run-time | |
CN111984414B (zh) | 一种数据处理的方法、系统、设备及可读存储介质 | |
Mestre et al. | Adaptive sorted neighborhood blocking for entity matching with mapreduce | |
Han et al. | Distme: A fast and elastic distributed matrix computation engine using gpus | |
Yang et al. | Improving Spark performance with MPTE in heterogeneous environments | |
CN113010286A (zh) | 并行任务调度方法、装置、计算机设备和存储介质 | |
Fu et al. | Optimizing speculative execution in spark heterogeneous environments | |
CN109800078B (zh) | 一种任务处理方法、任务分发终端及任务执行终端 | |
Shamoto et al. | GPU-accelerated large-scale distributed sorting coping with device memory capacity | |
CN113222099A (zh) | 卷积运算方法及芯片 | |
CN113222136A (zh) | 卷积运算方法及芯片 | |
Gu et al. | Characterizing job-task dependency in cloud workloads using graph learning | |
Rekachinsky et al. | Modeling parallel processing of databases on the central processor Intel Xeon Phi KNL | |
Kouzinopoulos et al. | Performance study of parallel hybrid multiple pattern matching algorithms for biological sequences | |
CN111831425B (zh) | 一种数据处理方法、装置及设备 | |
Wang et al. | A self-adaptive computing framework for parallel maximum likelihood evaluation | |
CN111737347A (zh) | 在Spark平台顺序切分数据的方法及装置 | |
CN106790620B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20221018 |