一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

微批流处理系统中的数据分区方法、装置、设备和介质

2022-07-22 23:07:19 来源:中国专利 TAG:
1.本技术涉及数据流实时处理
技术领域
:,特别是涉及一种微批流处理系统中的数据分区方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
::2.随着大数据技术的发展成熟,实时处理的需求愈加广泛,常分布于社交网络分析、点击流量分析等应用中。实时处理大数据流的重要性不言而喻,这就导致了大量分布式流处理系统的产生。3.目前技术中,例如sparkstreaming、comet、googledataflow等一些微批流处理系统采用了一次一批的处理模型来提高处理吞吐量,相比于传统一次一元组的流处理系统,微批流处理系统具有速度更快、容错机制更高效等优点。然而这种技术中的微批流处理系统使用基本数据分区技术,其性能对负载特性的动态变化非常敏感,资源利用率非常依赖于在处理单元上均匀的划分工作负载。技术实现要素:4.基于此,有必要针对上述技术问题,提供一种微批流处理系统中的数据分区方法、装置、计算机设备、存储介质和计算机程序产品。5.第一方面,本技术提供了一种微批流处理系统中的数据分区方法。所述方法包括:6.获取数据流元组;7.基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;8.遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;9.基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;10.通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。11.在其中一个实施例中,所述方法还包括:记录各批处理时间与批间隔;获取所述各批处理时间与所述批间隔的比例;根据预设比例阈值,获取所述比例满足所述预设比例阈值的连续批计数;根据所述连续批计数,调整map任务和/或reduce任务。12.在其中一个实施例中,所述预设比例阈值包括第一比例阈值;所述根据预设比例阈值,获取所述比例满足所述预设比例阈值的连续批计数,包括:获取所述比例大于所述第一比例阈值的连续批计数。13.在其中一个实施例中,所述根据所述连续批计数,调整map任务和/或reduce任务,包括:当第一连续批计数达到预设计数阈值时,在数据率增加的情况下增加map任务,在数据分布增加的情况下增加reduce任务;其中,所述第一连续批计数为所述比例大于所述第一比例阈值的连续批计数。14.在其中一个实施例中,所述预设比例阈值包括第二比例阈值;所述根据预设比例阈值,获取所述比例满足所述预设比例阈值的连续批计数,包括:获取所述比例小于所述第二比例阈值的连续批计数。15.在其中一个实施例中,所述根据所述连续批计数,调整map任务和/或reduce任务,包括:当第二连续批计数达到预设计数阈值时,在数据率减少的情况下减少map任务,在数据分布减少的情况下减少reduce任务;其中,所述第二连续批计数为所述比例小于所述第二比例阈值的连续批计数。16.第二方面,本技术还提供了一种微批流处理系统中的动态数据分区装置。17.所述装置包括:18.获取模块,用于获取数据流元组;19.维护模块,用于基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;20.生成模块,用于遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;21.分区模块,用于基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;22.分配处理模块,用于通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。23.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:24.获取数据流元组;基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。25.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:26.获取数据流元组;基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。27.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:28.获取数据流元组;基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。29.上述微批流处理系统中的数据分区方法、装置、计算机设备、存储介质和计算机程序产品,通过频率感知缓冲技术来使得批分区前准备工作所需时间最小化,遍历平衡二叉树可以得到一个键及其频率相关信息的有序列表,减少了处理阶段的排序时间,在批分区阶段通过将问题抽象为经典装箱问题,限制了键的碎片化程度,使得数据块之间的基数差异最小化,并保持各数据块大小相等,实现了对数据分区的负载平衡,在处理阶段把问题抽象为可变容量装箱问题,使用最差适应算法来分配键簇,保证了任务间的负载平衡,可以在不增加延迟的情况下大幅提高数据处理吞吐量。附图说明30.图1为一个实施例中微批流处理系统中的数据分区方法的流程示意图;31.图2为一个实施例中微批流处理系统中数据缓存及动态分区的流程示意图;32.图3为一个实施例中频率感知技术流程图;33.图4为一个实施例中分批阶段实现平衡负载分区流程图;34.图5为一个实施例中处理阶段分区流程图;35.图6为一个实施例中微批流处理系统中的数据分区装置的结构框图;36.图7为一个实施例中计算机设备的内部结构图。具体实施方式37.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。38.本技术实施例提供的微批流处理系统中的数据分区方法,可以应用于服务器中,该服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。39.以下结合各实施例及相应附图对本技术提供的微批流处理系统中的数据分区方法进行详细说明。40.在一个实施例中,如图1所示并结合图2,提供了一种微批流处理系统中的数据分区方法,包括:41.步骤s101,获取数据流元组;42.步骤s102,基于哈希表和平衡二叉搜索树维护数据流元组;其中,哈希表存储数据流元组的键、指向键对应的元组列表的第一指针及键的频率计数;键的频率计数还保存至平衡二叉搜索树;哈希表中每一个键均拥有指向平衡二叉搜索树中相应频率计数节点的第二指针;43.步骤s103,遍历平衡二叉搜索树,生成有序列表;其中,有序列表包含键、键的频率计数及键对应的元组列表;44.上述步骤s101至s103主要是通过频率感知缓冲技术来使得批分区前准备工作所需时间最小化。具体的,频率感知缓冲技术:获取一批数据流元组,建立一个哈希表和平衡二叉搜索树来维护数据流元组的统计信息。具体的,根据数据流元组的键将数据流元组存储到哈希表htable《k,vi》,其中,k为键,vi为指向每个键对应的元组列表tuplelisti的第一指针,哈希表htable还存储键的频率计数counti,同时,键的频率计数counti会保存到平衡二叉树counttree中,哈希表htable中每一个键都拥有指向平衡二叉树counttree中相应频率计数节点的双向指针(即第二指针),该第二指针允许直接更新键的计数节点。基于此,遍历平衡二叉树counttree来生成键及其相关频率信息的有序列表《ki,counti,tuplelisti》,ki表示数据流元组中第i个键。结合图3,更具体的过程如下:45.输入数据流s,批间隔为tstart-tend,设置更新补偿budget和初始频率补偿f。首先,重置哈希表htable和用来保存频率计数的counttree;然后循环遍历批间隔内接收到的数据流元组,将数据流元组计数nc加1;如果该数据流元组的键在哈希表htable中,那么将该数据流元组插入到哈希表htable该键的链表中,并更新当前键的频率k.freqcurr、当前键频与更新前频率的差值deltafreq=k.freqcurr-k.frequpdated,现在时间和上一次更新时间的差deltatime=timenow-klastupdatetime,如果键的当前频率步长kf.step等于deltafreq或者当前时间步长kt.step等于deltatime,那么更新counttree中的k.freqcurr、k.budget和k.frequpdated,如果kf.step等于deltafreq,则更新如果kt.step等于deltatime则更新kt.step=(tend-timenow)/k.budget。如果该元组的键不在哈希表htable中,将不同键的计数值k自增1,并将元组插入到哈希表htable中,将元组的键插入平衡二叉树中,初始化k.freqcurr、k.frequpdated为1,初始化kt.step=(tend-timenow)/budget、kf.step=f。46.为了提高数据处理速率,常采用更粗粒度的方式来更新,即在一定时间间隔内周期性的更新budget次,其中budget为根据需要确定的补偿值,定义控制参数fstep,每收到同一个键的fstep个新元组就更新一次节点的计数,最初fstep被设置为能反映最佳步长的常数其中nest是平均数据率下一个批间隔中的数据元组数,kavg为过去几个批中不同键的平均数。fstep是根据当前键的频率与当前批间隔中接收到的元组总数之比自适应地为每个键更新估计,即更高频次出现的键需要接收更多数据元组来触发更新;为了确保所有元组的节点得到更新,设置基于时间的控制参数tstep来更新长时间未得到更新的键,该参数基于键的budget更新已消耗时间和批间隔剩余持续时间来估计的。47.步骤s104,基于预设分区条件,将有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;48.上述步骤s104主要是平衡负载分区。具体的,所有共享相同键值的数据流元组被建模为一个单项,将步骤s103中有序列表中的数据流元组按批分区,每个分区为一个数据块,每个数据块中需存储键是否被分割的信息,分区过程需要满足以下预设分区条件:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等。49.具体来说,该步骤s104是将批分区问题定义为可拆分项目的平衡装箱问题,给定拥有n个不同项的集合:k1,k2…,kn,每项大小为sn,其中1≤n≤n,给定b={b1,b2,…,bb}个箱子,每个箱子容量为c,那么可拆分项的平衡装箱问题即将各项在同时满足以下条件的情况下分配到不同箱中:(1)对于任意bj,j∈[1,b],都有箱内的元组数等于箱的容量c;(2)对于任意bj,j∈[1,b],都有箱内不同项的个数大于等于n/b;(3)对于任意项,要求被分割次数尽可能少。装箱时,将频率counti大于数据块大小与数据块基数之比的键对应的数据流元组拆分为两项,其中一项的数据流元组大小等于数据块大小与数据块基数之比,将其放入数据块中,另一项放入一个新的列表中;然后,将排序列表中剩余键按蛇形排列分配给数据块,最后再按最佳适应算法将新的列表中的键分配给数据块。[0050]结合图4,更具体的过程如下:[0051]该过程可以由三个独立循环遍历算法构成。具体如下:a)遍历上述二叉树得到键及其频率信息的有序列表《ki,counti,tuplelisti》和元组计数值nc、不同键的计数值k作为输入,设置所需数据分区数p;定义分区大小psize=nc/p,分区基数pk=k/p,分割键的阈值scut=psize/pk,设置当前分区bj为第一个分区b1;b)遍历列表中的键,当其counti大于scut时,将scut个元组放入bj中,同时将剩余部分放入临时列表rlist,并更新该键对应的bj所在位置为pos(k)=bj;并设置bj=bj%p,j自增1,然后重复步骤b)直到不存在counti大于scut;c)遍历list中剩下的键,遍历分区bj依次放入一个键,遍历完分区后逆转分区顺序,重复步骤c);d)遍历临时列表rlist中的键,设b=pos(k),如果该键能全部放入b中则将键放入b,否则先将b装满,然后将剩余部分装到能容纳它的剩余容量最小的分区中。[0052]步骤s105,通过map任务基于最差适应算法利用数据块中的键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与buckets的数量的比值确定。[0053]步骤s105为处理阶段分区,在平衡负载批分区步骤中,每个数据块拥有键是否被分割的信息,用map任务处理数据库,map任务利用键被分割的信息来将键簇分配到reduce阶段的buckets中处理。其中,map阶段的输出为由键值对组成的簇,每个键簇拥有相同键的所有数据值,键簇ck可被表示为ck={(k,vi)|vi∈k},vi为键k所对应的数据值;假设由给定map阶段输出的k个键簇需要分配到r个reducebuckets中。map任务的输出为i={ck|k∈k},为保证reduce阶段的负载平衡,需要保证每个reducebuckets的分配一致,故设置bucket的容量为处理阶段的分区问题可以简化为装箱问题;将键簇看作是项,reducebuckets为箱。与批分区问题不同,处理阶段的分区问题为可变容量平衡装箱问题,定义如下:给定拥有m个项的集合,a个箱子a1,a2,…,aa,每个箱子容量为ci,那么可变容量平衡装箱问题即在满足以下条件的情况下将项分配到不同箱a1,a2,…,aa中;(1)对于任意aj,j∈[1,a],都有箱内的元组数小于箱的容量cj;(2)对于任意aj,j∈[1,a],都有箱内不同项的个数大于等于m。结合图5,更具体的过程如下:[0054]如图2所示,分区结果会进入到map任务中进行处理,图5展示了对map任务中间结果进行分配到reducebuckets中的详细过程。首先,输入信息为map任务得到的键簇c,经上述步骤得到的数据分区中包含有键是否被分割过的信息,reduce阶段所有buckets的集合r,设置bucksize=|c|/|r|,使用hash算法分配被分割过的键,使得键簇中仅剩下未被分割的键,并对其进行降序排序。然后遍历键簇中的键,按最差适应算法尽可能的将较大键簇分配到第r个bucket中,并将第r个bucket从r中删除,如果r中没有bucket则重置r为所有bucket,继续遍历键簇中的剩余键。[0055]上述微批流处理系统中的数据分区方法,通过频率感知缓冲技术来使得批分区前准备工作所需时间最小化,遍历平衡二叉树可以得到一个键及其频率相关信息的有序列表,减少了处理阶段的排序时间,在批分区阶段通过将问题抽象为经典装箱问题,限制了键的碎片化程度,使得数据块之间的基数差异最小化,并保持各数据块大小相等,实现了对数据分区的负载平衡,在处理阶段把问题抽象为可变容量装箱问题,使用最差适应算法来分配键簇,保证了任务间的负载平衡,可以在不增加延迟的情况下大幅提高数据处理吞吐量。[0056]在一些实施例中,上述方法还可以包括以下步骤:[0057]记录各批处理时间与批间隔;获取各批处理时间与批间隔的比例;根据预设比例阈值,获取比例满足预设比例阈值的连续批计数;根据连续批计数,调整map任务和/或reduce任务。[0058]本实施例主要资源动态管理,通过设定map-reduce任务处理时间的阈值来改变运行时的并行程度,根据工作负载的变化来调整map-reduce任务,具体连续根据各批处理时间与两批数据流元组之间的时间间隔之比,调整map任务和/或reduce任务。[0059]在其中一些实施例中,预设比例阈值包括第一比例阈值;上述根据预设比例阈值,获取比例满足预设比例阈值的连续批计数,包括:获取比例大于第一比例阈值的连续批计数。[0060]进一步的,上述根据连续批计数,调整map任务和/或reduce任务,具体包括:[0061]当第一连续批计数达到预设计数阈值时,在数据率增加的情况下增加map任务,在数据分布增加的情况下增加reduce任务;其中,第一连续批计数为比例大于第一比例阈值的连续批计数。[0062]在另外一些实施例中,预设比例阈值包括第二比例阈值;上述根据预设比例阈值,获取比例满足预设比例阈值的连续批计数,包括:获取比例小于第二比例阈值的连续批计数。[0063]进一步的,上述根据连续批计数,调整map任务和/或reduce任务,具体包括:[0064]当第二连续批计数达到预设计数阈值时,在数据率减少的情况下减少map任务,在数据分布减少的情况下减少reduce任务;其中,第二连续批计数为比例小于第二比例阈值的连续批计数。[0065]上述实施例中,当各批处理时间与两批数据流元组之间的时间间隔之比,在连续几个批次均超过或低于设定阈值时,即触发对map-reduce任务的调整。具体如下:[0066]用statsd来记录前d个(预设计数阈值)批次的处理时间与批间隔之比,以及数据率和数据分布等状态信息,定义批处理时间与批间隔的比例每个批都将该比例及数据率和数据分布情况加入到statsd中。设定第一比例阈值为thres1,采用count表示wi>thres1的连续若干个批计数即第一连续批计数,若出现wi<thres1,则可以将第一连续批计数置零重新计数。当第一连续批计数等于d,即连续d个批的wi大于预设计数阈值时,若数据率增加则增加相应的map任务,若数据分布增加则增加reduce任务;同样的,设第二比例阈值为thres2,当连续d个批次wi<thres2时根据数据率和数据分布的变化情况减少相应的任务,即若数据率减少则减少map任务,若数据分布减少则减少reduce任务。[0067]上述实施例采用动态资源管理技术实现负载动态调整,调整运行时的并行程度,使得该方法对数据分布和到达率的波动具有鲁棒性,并可以在不增加延迟的情况下大幅提高数据处理吞吐量。[0068]应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。[0069]基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的微批流处理系统中的数据分区方法的微批流处理系统中的数据分区装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个微批流处理系统中的数据分区装置实施例中的具体限定可以参见上文中对于微批流处理系统中的数据分区方法的限定,在此不再赘述。[0070]在一个实施例中,如图6所示,提供了一种微批流处理系统中的数据分区装置,该装置600可以包括:[0071]获取模块601,用于获取数据流元组;[0072]维护模块602,用于基于哈希表和平衡二叉搜索树维护所述数据流元组;其中,所述哈希表存储所述数据流元组的键、指向所述键对应的元组列表的第一指针及所述键的频率计数;所述键的频率计数还保存至所述平衡二叉搜索树;所述哈希表中每一个键均拥有指向所述平衡二叉搜索树中相应频率计数节点的第二指针;[0073]生成模块603,用于遍历所述平衡二叉搜索树,生成所述有序列表;其中,所述有序列表包含所述键、所述键的频率计数及所述键对应的元组列表;[0074]分区模块604,用于基于预设分区条件,将所述有序列表中的数据流元组按批分区;其中,每个分区为一个数据块,每个数据块中存储有键是否被分割的信息;所有共享相同键值的数据流元组被建模为一个单项,所述预设分区条件包括:限制单项的拆分次数、最小化数据块中不同单项的数目和维持各数据块的容量相等;[0075]分配处理模块605,用于通过map任务基于最差适应算法利用所述数据块中的所述键是否被分割的信息将键簇分配至reduce阶段的buckets中处理;其中,所述map阶段的输出为由键值组成的簇,每个键簇拥有相同键的所有数据值;bucket的容量根据键簇的数量与所述buckets的数量的比值确定。[0076]在一个实施例中,该装置600还可以包括:[0077]任务调整模块,用于记录各批处理时间与批间隔;获取所述各批处理时间与所述批间隔的比例;根据预设比例阈值,获取所述比例满足所述预设比例阈值的连续批计数;根据所述连续批计数,调整map任务和/或reduce任务。[0078]在一个实施例中,所述预设比例阈值包括第一比例阈值;任务调整模块,用于获取所述比例大于所述第一比例阈值的连续批计数。[0079]在一个实施例中,任务调整模块,用于当第一连续批计数达到预设计数阈值时,在数据率增加的情况下增加map任务,在数据分布增加的情况下增加reduce任务;其中,所述第一连续批计数为所述比例大于所述第一比例阈值的连续批计数。[0080]在一个实施例中,所述预设比例阈值包括第二比例阈值;任务调整模块,用于获取所述比例小于所述第二比例阈值的连续批计数。[0081]在一个实施例中,任务调整模块,用于当第二连续批计数达到预设计数阈值时,在数据率减少的情况下减少map任务,在数据分布减少的情况下减少reduce任务;其中,所述第二连续批计数为所述比例小于所述第二比例阈值的连续批计数。[0082]上述微批流处理系统中的数据分区装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。[0083]在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据流元组等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种微批流处理系统中的数据分区方法。[0084]本领域技术人员可以理解,图7中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。[0085]在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。[0086]在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。[0087]在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。[0088]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistiverandomaccessmemory,mram)、铁电存储器(ferroelectricrandomaccessmemory,fram)、相变存储器(phasechangememory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。[0089]需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。[0090]以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。[0091]以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献