CN110263059A - Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质 - Google Patents

Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110263059A
CN110263059A CN201910438036.0A CN201910438036A CN110263059A CN 110263059 A CN110263059 A CN 110263059A CN 201910438036 A CN201910438036 A CN 201910438036A CN 110263059 A CN110263059 A CN 110263059A
Authority
CN
China
Prior art keywords
subregion
cluster
frequency weight
updated
intermediate data
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.)
Granted
Application number
CN201910438036.0A
Other languages
English (en)
Other versions
CN110263059B (zh
Inventor
唐卓
付仲明
陈岑
陈建国
李肯立
李克勤
廖湘科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN201910438036.0A priority Critical patent/CN110263059B/zh
Publication of CN110263059A publication Critical patent/CN110263059A/zh
Application granted granted Critical
Publication of CN110263059B publication Critical patent/CN110263059B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本申请涉及一种Spark‑Streaming中间数据分区方法、装置、计算机设备和存储介质。一个实施例中的方法包括:获取Spark‑Streaming map任务输出的中间数据中的多个元素,基于蓄水池抽样算法,对多个元素进行抽样处理,得到抽样处理后的元素集群;通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;根据边界元素对更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。

Description

Spark-Streaming中间数据分区方法、装置、计算机设备和存 储介质
技术领域
本发明涉及数据处理领域,特别是涉及一种Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质。
背景技术
随着信息技术的发展,网络信息资源快速增长,对数据流进行实时处理具有重要意义。MapReduce是一种处理大规模数据的标准编程模型,Apache Spark是MapReduce框架的一种开源实现,Spark-Streaming是建立在Spark上的实时计算框架,它扩展了Spark处理大规模流式数据的能力。Spark-Streaming将数据流切分成连续的微批次数据,然后将切分后的微批次数据当作一系列的批作业进行处理。
以一个典型的Spark批作业处理为例,map任务读取数据,根据用户自定义的map函数对读取的数据进行处理,得到中间数据,将中间数据进行分区处理并且输出至本地节点。中间数据以key/value元组的形式存在,中间数据被range分区器分区,reduce任务获取特定的分区数据进行处理。
当分配到每个分区的元组数量不同时,分区内的数据量也不相同,这样会造成处理这些分区的reduce任务负载的不均衡。而reduce阶段的完成时间由并行的reduce任务中最慢的任务决定,因此,当某个reduce任务负载超重时,将执行较长时间,从而导致作业执行时间延长,作业执行效率低。也即传统的中间数据分区方法存在作业执行效率低的问题。
发明内容
基于此,有必要针对上述问题,提供一种可以提高作业执行效率的Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质。
一种Spark-Streaming中间数据分区方法,包括:
获取Spark-Streaming map任务输出的中间数据中的多个元素;
基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
在一个实施例中,所述基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群,包括:
从单个所述map任务对应的元素中选取前K个元素,根据所述K个元素得到样本数组;
基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,将第K+m+1个元素替换所述样本数组中的任意一个元素;
遍历各个map任务对应的所有元素,得到抽样处理后的元素集群。
在一个实施例中,所述基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,包括:
通过累计分布函数,对未被选取的元素基于概率计算公式计算跳过不同个元素对应的概率;
基于所述跳过不同个元素对应的概率,根据约束公式计算最小的整数m。
在一个实施例中,所述通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,包括:
获取当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重;
根据所述当前时间序列元素对应的频率权重以及所述当前时间序列抽样元素对应的频率权重,对所述元素集群中各个元素对应的频率权重进行更新。
在一个实施例中,所述基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素,包括:
获取设置的初始状态以及最终状态,其中,所述初始状态为将排序后的元素集群中的预设第一数量元素分配至一个分区时,各元素的频率权重之和,所述最终状态为将预设第二数量元素分配至预设多个分区时,最大分区对应的元素的频率权重之和最小;
基于所述初始状态以及所述最终状态,通过状态转移方程求取最大分区以及所述最大分区对应的最小频率权重之和;
根据所述最大分区以及所述最大分区对应的最小频率权重之和,得到数据分区对应的边界元素。
一种Spark-Streaming中间数据分区装置,所述装置包括:
中间数据获取模块,用于获取Spark-Streaming map任务输出的中间数据中的多个元素;
抽样处理模块,用于基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
权重更新模块,用于通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
边界求解模块,用于基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
分区模块,用于根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取Spark-Streaming map任务输出的中间数据中的多个元素;
基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取Spark-Streaming map任务输出的中间数据中的多个元素;
基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
上述Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质,对当前批次作业map任务输出的中间数据通过蓄水池抽样算法进行抽样,检测中间数据的频率分布,可以降低时间和空间开销;再通过时间序列预测方法对元素集群中各个元素的频率权重进行更新,根据更新后的元素集群,采用动态规划方法求解最优的边界元素,以使分区处理后最大分区内的各个元素对应的频率权重之和最小,从而实现下一批次作业的中间数据分区均匀,解决了作业中reduce任务负载不均衡的问题,进而提高作业执行效率。
附图说明
图1为一个实施例中Spark-Streaming中间数据分区方法的应用环境图;
图2为一个实施例中Spark-Streaming中间数据分区方法的流程示意图;
图3为一个实施例中抽样处理步骤的流程示意图;
图4为一个实施例中跳过元素个数确定步骤的流程示意图;
图5为一个实施例中Spark-Streaming中间数据分区装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的方法,可以应用于如图1所示的应用环境中。对于一个批作业,map任务读取数据在节点上并行处理,然后输出key/value对形式的中间数据,这些中间数据由Range分区器分区,如图1所示每个map数据被分成3份。然后每个reduce任务会从每个map任务获取所属部分的中间数据进行处理,最后输出结果。Range分区器的处理流程包括抽样、Key cluster更新和Border key重计算。具体地,Range分区器获取Spark-Streaming map任务输出的中间数据中的多个元素,基于蓄水池抽样算法,对多个元素进行抽样处理,得到抽样处理后的元素集群。Key cluster更新是指通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序。Border key重计算是指基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素。最后根据边界元素对更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
在一个实施例中,如图2所示,提供了一种方法,以所述方法应用于图1中的Range分区器为例,包括以下步骤:
步骤202,获取Spark-Streaming map任务输出的中间数据中的多个元素。
map任务输出的中间数据以<key,value>(键值)对的形式存在,获取中间数据中的多个元素即获取中间数据中的多个key。
步骤204,基于蓄水池抽样算法,对多个元素进行抽样处理,得到抽样处理后的元素集群。
对map任务输出的中间数据进行抽样,得到K个key。如果有M个map任务,则得到M*K个key,再统计每个key的频率权重。例如抽样后得到的key为:A、A、D、D、D、D、D、F、F、F,可知,此时元素集群为:(A,0.2),(D,0.5),(F,0.3),其中A代表某个key,0.2代表A的频率权重。元素集群包括key以及与key对应的频率权重。
步骤206,通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序。
通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,例如某一个元素集群key cluster(A,0.4),通过时间序列预测方法,将A的频率权重更新为0.4*α+(1-α)*0.2,其中α为预设调节系数。例如更新后的元素集群为:(A,0.4),(B,0.3),(C,0.1)以及(D,0.2),将更新后的元素集群按key排序。
步骤208,基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素。
例如,排序后的元素集群为:(A,0.4),(B,0.3),(C,0.1)以及(D,0.2)。如果将ABCD分配至两个分区,比如第1种方案,将AB分配至分区1,CD分配至分区2;第二中方案将A分配至分区1,BCD分配至分区2,而第2种方案比第1种方案分区更均匀,因而第2种方案更优。在Range分区器中,通过动态规划方法求解数据分区对应的边界元素,即Border key边界点,边界元素Border key是从元素集群中选择的key。比如第1种分区方案中Border key为B,在对中间数据进行分区时,属于[A,B]范围内的key/value被分配到分区1,属于(B,D]范围内的key/value被分配到分区2。
步骤210,根据边界元素对更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
上述Spark-Streaming中间数据分区方法,对当前批次作业map任务输出的中间数据通过蓄水池抽样算法进行抽样,检测中间数据的频率分布,可以降低时间和空间开销;再通过时间序列预测方法对元素集群中各个元素的频率权重进行更新,根据更新后的元素集群,采用动态规划方法求解最优的边界元素,以使分区处理后最大分区内的各个元素对应的频率权重之和最小,从而实现下一批次作业的中间数据分区均匀,解决了作业中reduce任务负载不均衡的问题,进而提高作业执行效率。
在一个实施例中,如图3所示,基于蓄水池抽样算法,根据各元素对应的元素进行抽样处理,得到抽样处理后的元素集群,包括:步骤302,从单个map任务对应的元素中选取前K个元素,根据K个元素得到样本数组;步骤304,基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,将第K+m+1个元素替换样本数组中的任意一个元素;步骤306,遍历各个map任务对应的所有元素,得到抽样处理后的元素集群。具体地,(1)创建一个大小为K的样本数组,即蓄水池,将抽样总体N(其中,N>K)的前K个元素插入至样本数组。(2)对于插入的第i个元素,其跳过S(K,i)个元素,i初始化为K。(3)将第S(K,i)+1个元素插入到样本数组,同时随机选择样本数组中的一个元素替换,循环步骤(2)和(3),直至遍历完抽样总体N,抽样完成。
在一个实施例中,如图4所示,基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,包括:步骤402,通过累计分布函数,对未被选取的元素基于概率计算公式计算跳过不同个元素对应的概率;步骤404,基于跳过不同个元素对应的概率,根据约束公式计算最小的整数m。具体地,概率计算公式为:
其中,FS(m)为跳过m个元素的概率,S(K,i)为未被选取的第i个元素,i的初始值为K,
约束公式为:
其中,U为基于逆变换法从0至1中均匀产生一个随机数。
在一个实施例中,通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,包括:获取当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重;根据当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重,对元素集群中各个元素对应的频率权重进行更新。具体地,可以通过频率权重更新公式对元素集群中各个元素的频率权重进行更新,其中,频率权重更新公式为:
Weightt+1=α×Weightt+(1-α)×Weightsample
其中,α为调节系数,Weightt+1为下一时间序列元素的频率权重,Weightt为当前时间序列元素的频率权重,Weightsample为当前时间序列元素的抽样频率权重。
在一个实施例中,基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素,包括:获取设置的初始状态以及最终状态,其中,初始状态为将排序后的元素集群中的预设第一数量元素分配至一个分区时,各元素的频率权重之和,最终状态为将预设第二数量元素分配至预设多个分区时,最大分区对应的元素的频率权重之和最小;基于初始状态以及最终状态,通过状态转移方程求取最大分区以及最大分区对应的最小频率权重之和;根据最大分区以及最大分区对应的最小频率权重之和,得到数据分区对应的边界元素。边界元素Border key是从元素集群中选择的key,例如排序后的元素集群为:(A,0.4),(B,0.3),(C,0.1)以及(D,0.2),第1种分区方案,将AB分配至分区1,CD分配至分区2。分区方案中有2个分区,那么就有2-1=1个边界key,即第1种分区方案中Border key为B。在对中间数据进行分区时,属于[A,B]范围内的key/value被分配到分区1,属于(B,D]范围内的key/value被分配到分区2。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
为了验证Spark-Streaming中间数据分区方法的有效性,在8个节点(1个master,7个slave)的Spark集群上分别对sort,textSearch和join基准进行测试。实验使用的数据集为full English Wikipedia archive,其单词频率分布符合zipf分布。在Spark-Streaming环境中,记录连续20个批作业的平均作业时间,并且与Spark原生Hash和Range分区方法进行对比。为了观察作业reduce任务的负载均衡情况,即中间数据分区均匀情况,定义变异系数CV,其中,CV越小,负载越均衡,反之越不均衡。
其中,avg表示分区的平均数据量大小;R为分区个数,等于reduce任务的数量;PSi为第i个分区的数据量大小。
表1、表2和表3分别记录了在sort,textSearch和join基准下的批作业性能。从表1、表2和表3数据可以知晓,本申请的中间数据分区方法在作业时间和reduce任务负载均衡上都优于Hash和Range分区方法。在三种测试基准下,平均作业时间减少17.9%~49.4%,平均CV减少19.0%~58.8%。
表1在Sort基准下的作业性能
表2在textSearch基准下的作业性能
表3在join基准下的作业性能
在一个实施例中,提供了一种Spark-Streaming中间数据分区装置,如图5所示,Spark-Streaming中间数据分区装置包括中间数据获取模块502、抽样处理模块504、权重更新模块506、边界求解模块508以及分区模块510。其中,中间数据获取模块,用于获取Spark-Streaming map任务输出的中间数据中的多个元素。抽样处理模块,用于基于蓄水池抽样算法,对多个元素进行抽样处理,得到抽样处理后的元素集群。权重更新模块,用于通过时间序列预测方法对元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序。边界求解模块,用于基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素。分区模块,用于根据边界元素对更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
在一个实施例中,所述抽样处理模块包括:样本数组获取单元,用于从单个map任务对应的元素中选取前K个元素,根据K个元素得到样本数组;替换处理单元,用于基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,将第K+m+1个元素替换所述样本数组中的任意一个元素;遍历处理单元,用于遍历各个map任务对应的所有元素,得到抽样处理后的元素集群。
在一个实施例中,替换处理单元包括:概率计算单元,用于通过累计分布函数,对未被选取的元素基于概率计算公式计算跳过不同个元素对应的概率;约束计算单元,用于基于跳过不同个元素对应的概率,根据约束公式计算最小的整数m。
在一个实施例中,权重更新模块还用于获取当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重;根据当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重,对元素集群中各个元素对应的频率权重进行更新。
在一个实施例中,边界求解模块还用于获取设置的初始状态以及最终状态,其中,初始状态为将排序后的元素集群中的预设第一数量元素分配至一个分区时,各元素的频率权重之和,最终状态为将预设第二数量元素分配至预设多个分区时,最大分区对应的元素的频率权重之和最小;基于初始状态以及最终状态,通过状态转移方程求取最大分区以及最大分区对应的最小频率权重之和;根据最大分区以及最大分区对应的最小频率权重之和,得到数据分区对应的边界元素。
关于Spark-Streaming中间数据分区装置的具体限定可以参见上文中对于Spark-Streaming中间数据分区方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储元素集群、边界元素等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种Spark-Streaming中间数据分区方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现任一实施例中Spark-Streaming中间数据分区方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现任一实施例中Spark-Streaming中间数据分区方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种Spark-Streaming中间数据分区方法,其特征在于,包括:
获取Spark-Streaming map任务输出的中间数据中的多个元素;
基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
2.根据权利要求1所述的方法,其特征在于,所述基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群,包括:
从单个所述map任务对应的元素中选取前K个元素,根据所述K个元素得到样本数组;
基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,将第K+m+1个元素替换所述样本数组中的任意一个元素;
遍历各个map任务对应的所有元素,得到抽样处理后的元素集群。
3.根据权利要求2所述的方法,其特征在于,所述基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,包括:
通过累计分布函数,对未被选取的元素基于概率计算公式计算跳过不同个元素对应的概率;
基于所述跳过不同个元素对应的概率,根据约束公式计算最小的整数m。
4.根据权利要求1所述的方法,其特征在于,所述通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,包括:
获取当前时间序列元素对应的频率权重以及当前时间序列抽样元素对应的频率权重;
根据所述当前时间序列元素对应的频率权重以及所述当前时间序列抽样元素对应的频率权重,对所述元素集群中各个元素对应的频率权重进行更新。
5.根据权利要求1所述的方法,其特征在于,所述基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素,包括:
获取设置的初始状态以及最终状态,其中,所述初始状态为将排序后的元素集群中的预设第一数量元素分配至一个分区时,各元素的频率权重之和,所述最终状态为将预设第二数量元素分配至预设多个分区时,最大分区对应的元素的频率权重之和最小;
基于所述初始状态以及所述最终状态,通过状态转移方程求取最大分区以及所述最大分区对应的最小频率权重之和;
根据所述最大分区以及所述最大分区对应的最小频率权重之和,得到数据分区对应的边界元素。
6.一种Spark-Streaming中间数据分区装置,其特征在于,所述装置包括:
中间数据获取模块,用于获取Spark-Streaming map任务输出的中间数据中的多个元素;
抽样处理模块,用于基于蓄水池抽样算法,对所述多个元素进行抽样处理,得到抽样处理后的元素集群;
权重更新模块,用于通过时间序列预测方法对所述元素集群中元素对应的频率权重进行更新,对更新后的元素集群中各元素按照预设元素顺序进行排序;
边界求解模块,用于基于排序后的元素集群,通过动态规划方法求解数据分区对应的边界元素;
分区模块,用于根据所述边界元素对所述更新后的元素集群中的元素进行分区,以使分区处理后最大分区内的各个元素对应的频率权重之和最小。
7.根据权利要求6所述的装置,其特征在于,所述抽样处理模块包括:
样本数组获取单元,用于从单个所述map任务对应的元素中选取前K个元素,根据所述K个元素得到样本数组;
替换处理单元,用于基于累计分布函数对未被选取的元素进行处理,以确定跳过m个元素,将第K+m+1个元素替换所述样本数组中的任意一个元素;
遍历处理单元,用于遍历各个map任务对应的所有元素,得到抽样处理后的元素集群。
8.根据权利要求7所述的装置,其特征在于,所述替换处理单元包括:
概率计算单元,用于通过累计分布函数,对未被选取的元素基于概率计算公式计算跳过不同个元素对应的概率;
约束计算单元,用于基于所述跳过不同个元素对应的概率,根据约束公式计算最小的整数m。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
CN201910438036.0A 2019-05-24 2019-05-24 Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质 Active CN110263059B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910438036.0A CN110263059B (zh) 2019-05-24 2019-05-24 Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910438036.0A CN110263059B (zh) 2019-05-24 2019-05-24 Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110263059A true CN110263059A (zh) 2019-09-20
CN110263059B CN110263059B (zh) 2021-05-11

Family

ID=67915335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910438036.0A Active CN110263059B (zh) 2019-05-24 2019-05-24 Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110263059B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258624A (zh) * 2020-01-13 2020-06-09 上海交通大学 开源软件开发中Issue解决时间的预测方法及系统
CN112000467A (zh) * 2020-07-24 2020-11-27 广东技术师范大学 一种数据倾斜处理方法、装置、终端设备及存储介质
CN112612614A (zh) * 2020-12-28 2021-04-06 江苏苏宁云计算有限公司 一种数据排序方法、装置及系统
CN113626426A (zh) * 2021-07-06 2021-11-09 佛山市禅城区政务服务数据管理局 一种生态网格数据的采集传输方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238621A1 (en) * 2012-03-06 2013-09-12 Microsoft Corporation Entity Augmentation Service from Latent Relational Data
CN105550374A (zh) * 2016-01-29 2016-05-04 湖南大学 Spark云服务环境下面向大数据的随机森林并行机器学习方法
US20160321350A1 (en) * 2013-12-27 2016-11-03 International Business Machines Corporation Stratified sampling using adaptive parallel data processing
CN109034981A (zh) * 2018-08-23 2018-12-18 上海海事大学 一种电商协同过滤推荐方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130238621A1 (en) * 2012-03-06 2013-09-12 Microsoft Corporation Entity Augmentation Service from Latent Relational Data
US20160321350A1 (en) * 2013-12-27 2016-11-03 International Business Machines Corporation Stratified sampling using adaptive parallel data processing
CN105550374A (zh) * 2016-01-29 2016-05-04 湖南大学 Spark云服务环境下面向大数据的随机森林并行机器学习方法
CN109034981A (zh) * 2018-08-23 2018-12-18 上海海事大学 一种电商协同过滤推荐方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111258624A (zh) * 2020-01-13 2020-06-09 上海交通大学 开源软件开发中Issue解决时间的预测方法及系统
CN111258624B (zh) * 2020-01-13 2023-04-28 上海交通大学 开源软件开发中Issue解决时间的预测方法及系统
CN112000467A (zh) * 2020-07-24 2020-11-27 广东技术师范大学 一种数据倾斜处理方法、装置、终端设备及存储介质
CN112612614A (zh) * 2020-12-28 2021-04-06 江苏苏宁云计算有限公司 一种数据排序方法、装置及系统
CN113626426A (zh) * 2021-07-06 2021-11-09 佛山市禅城区政务服务数据管理局 一种生态网格数据的采集传输方法及系统

Also Published As

Publication number Publication date
CN110263059B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
CN110263059A (zh) Spark-Streaming中间数据分区方法、装置、计算机设备和存储介质
CN110597616B (zh) 一种神经网络的内存分配方法及装置
Rahimi-Vahed et al. Fleet-sizing for multi-depot and periodic vehicle routing problems using a modular heuristic algorithm
Kabiljo et al. Social hash partitioner: a scalable distributed hypergraph partitioner
CN110321223A (zh) Coflow协同作业流调度感知的数据流划分方法与装置
CN112101674B (zh) 基于群智能算法资源配置匹配方法、装置、设备及介质
CN112163048A (zh) 基于ClickHouse实现OLAP分析的方法、装置
Czumaj et al. Simple, deterministic, constant-round coloring in the congested clique
CN109934507A (zh) 一种业务流程调度的方法及装置
CN110602227A (zh) 一种智能合约管理的方法以及相关装置
CN104866297B (zh) 一种优化核函数的方法和装置
CN110969354A (zh) 线性流程配置方法、装置、计算机设备及存储介质
CN113138849B (zh) 一种计算资源调度和迁移方法、相关装置及系统
CN104778088A (zh) 一种基于减少进程间通信开销的并行i/o优化方法与系统
CN106202374A (zh) 一种数据处理方法及装置
CN116185869A (zh) 一种软件测试方法、系统、计算机设备及存储介质
CN109165325A (zh) 用于切分图数据的方法、装置、设备以及计算机可读存储介质
CN115361340A (zh) Ab实验分流方法、装置、计算机设备和存储介质
Khan et al. Fast graph partitioning algorithms
Seiferth et al. Offsite autotuning approach: performance model driven autotuning applied to parallel explicit ODE methods
CN113377652A (zh) 测试数据生成方法及装置
US20080147221A1 (en) Grid modeling tool
Li et al. A sort-based interest matching algorithm with two exclusive judging conditions for region overlap
Vescan et al. A hybrid evolutionary multiobjective approach for the dynamic component selection problem
CN109739638A (zh) 一种基于深度学习的edf可调度性判定方法及装置

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
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Tang Zhuo

Inventor after: Fu Zhongming

Inventor after: Chen Cen

Inventor after: Chen Jianguo

Inventor after: Li Kenli

Inventor after: Li Keqin

Inventor before: Tang Zhuo

Inventor before: Fu Zhongming

Inventor before: Chen Cen

Inventor before: Chen Jianguo

Inventor before: Li Kenli

Inventor before: Li Keqin

Inventor before: Liao Xiangke

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Li Kenli

Inventor after: Fu Zhongming

Inventor after: Tang Zhuo

Inventor after: Chen Cen

Inventor after: Chen Jianguo

Inventor after: Li Keqin

Inventor before: Tang Zhuo

Inventor before: Fu Zhongming

Inventor before: Chen Cen

Inventor before: Chen Jianguo

Inventor before: Li Kenli

Inventor before: Li Keqin