CN105677489A - 离散流处理模型下批次间隔大小的动态设置系统及方法 - Google Patents

离散流处理模型下批次间隔大小的动态设置系统及方法 Download PDF

Info

Publication number
CN105677489A
CN105677489A CN201610124877.0A CN201610124877A CN105677489A CN 105677489 A CN105677489 A CN 105677489A CN 201610124877 A CN201610124877 A CN 201610124877A CN 105677489 A CN105677489 A CN 105677489A
Authority
CN
China
Prior art keywords
batch
spacing value
value
data
spacing
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
CN201610124877.0A
Other languages
English (en)
Other versions
CN105677489B (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.)
Shandong University
Original Assignee
Shandong 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 Shandong University filed Critical Shandong University
Priority to CN201610124877.0A priority Critical patent/CN105677489B/zh
Publication of CN105677489A publication Critical patent/CN105677489A/zh
Application granted granted Critical
Publication of CN105677489B publication Critical patent/CN105677489B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了离散流处理模型下批次间隔大小的动态设置系统及方法,该系统包括主节点,其分别与数据源和若干工作节点连接,所述主节点上部署有接收器和任务管理模块,所述接收器依次通过批次控制模块和观察模块与工作节点连接;主节点将从数据源中得到流数据;所述观察模块,用于对集群中的负载信息和网络流量信息进行监控,计算出符合设定条件的批次间隔值;所述批次控制模块,将批次间隔值传输给接收器,按照批次间隔值对接收器中的流数据切分批次;所述任务管理模块将每个批次划分为分布式任务,并分配到工作节点中进行计算;所述批次间隔值是指从接收器中取出未被处理的数据的时间间隔;按照批次间隔值进行处理的数据叫做间隔值下对应的批次。

Description

离散流处理模型下批次间隔大小的动态设置系统及方法
技术领域
本发明涉及离散流处理模型下批次间隔大小的动态设置系统及方法。
背景技术
近些年来,人们对于海量数据进行分析处理的需求越来越大。尤其是随着对数据实时性和有效性的理解深刻,“大数据”实时处理技术日益渗透到经济发展、社会进步和人类生活的各个领域,成为生产力中活跃的因素。例如,在twitter或者新浪微博中,要实时计算出最新的热点话题;电商网站中的推荐系统需要对用户的购买行为进行分析,进而实时地对商品进行推送,增加销量。这些应用场景对计算的实时性要求较高,而且要求系统有一定的容错性。
传统的分布式流处理模型采用连续操作的方案,该方案将整个计算过程分解成多个有状态的计算算子的集合,通过更新内部状态以完成计算。传统的处理方法在故障恢复上有一定的困难,缺乏有效的容错机制。近些年来以Spark为代表的大数据计算框架提出了基于批次的处理模式,基于批次的处理模式将输入流以及其计算分解成一些小的批处理计算任务,例如系统设置2秒为一个批次处理流数据,那么系统将2秒钟内收集到的流数据作为一个批数据传递给集群进行处理。基于批次的流处理系统克服了传统的连续处理模式下流处理系统的容错难这一问题。由于要将流计算分解为周期上的批处理计算,直观上来讲批处理的粒度划分决定了系统计算的时延和吞吐率。因而怎样确定合理的批次划分,并且可以根据资源进行伸缩性调整成为一个挑战。
发明内容
本发明的目的就是为了解决上述问题,提供一种离散流处理模型下批次间隔大小的动态设置系统及方法,它具有使得端对端延迟和整个流负载吞吐量之间达到权衡的优点。
为了实现上述目的,本发明采用如下技术方案:
离散流处理模型下批次间隔大小的动态设置系统,包括:
主节点,其分别与数据源和若干工作节点连接,所述主节点上部署有接收器和任务管理模块,所述接收器依次通过批次控制模块和观察模块与工作节点连接;主节点将从数据源中得到流数据;
所述观察模块,用于对集群中的负载信息和网络流量信息进行监控,计算出符合设定条件的批次间隔值;所述批次控制模块,将批次间隔值传输给接收器,按照批次间隔值对接收器中的流数据切分批次;所述任务管理模块将每个批次划分为分布式任务,并分配到工作节点中进行计算;所述批次间隔值是指从接收器中取出未被处理的数据的时间间隔;按照批次间隔值进行处理的数据叫做间隔值下对应的批次。
所述数据源是主节点的数据获取的来源;所述接收器包括缓存单元,接收器接收来自数据源的数据并将接收到的数据存储到缓存单元中。
一种基于离散流处理模型下批次间隔大小的动态设置系统的批次间隔大小动态设置方法,包括如下步骤:
步骤(1):设置系统最小的间隔值为初始间隔值;
步骤(2):观察模块和批次控制模块对初始间隔值进行预处理,得到批次处理时间和批次间隔值,任务管理模块按照预处理得到的批次间隔值从接收器中取出该批次间隔值对应的批次数据,并将批次数据转化为批次分布式任务在集群中进行处理;
步骤(3):观察模块对步骤(2)的预处理结果进行判断,判断预处理结果是否达到临界条件,若达临界条件,就转到步骤(4);否则,就返回步骤(2);所述临界条件是指批次处理时间小于该批次间隔值大小;
步骤(4):观察模块和批次控制模块对预处理后的批次间隔值进行动态调整,任务管理模块按照动态调整后的批次间隔值从接收器中取出该批次间隔值对应的批次数据,并将批次数据转化为批次分布式任务在集群中进行处理。
所述步骤(2)的过程,包括:
步骤(201):按照初始间隔值从接收器中取出初始间隔值对应的数据作为一个批次数据,并记录初始间隔值对应批次的处理时间;
步骤(202):判断初始间隔值下的批次处理时间是否大于等于2倍的初始间隔值;若是,就进入步骤(203);否则,进入步骤(204);
步骤(203):对批次间隔值进行A级调整:设定下一个批次间隔值为本次间隔值的两倍,按照新计算的下一个间隔值从接收器中取出下一个间隔值的流数据,并对该流数据进行计算,并记录下一个间隔值对应批次的处理时间,并进入步骤(204);
步骤(204):对批次间隔值进行B级调整:设定下一批次间隔值是当前批次间隔值2倍内的数,而且批次间隔值随着运行次数增加而减少,按照新计算的下一个间隔值从接收器中取出下一个间隔值的流数据,并对流数据进行计算,并记录下一个间隔值对应批次的处理时间;
步骤(205):当对流数据的处理涉及到对多流处理时,会有两个最佳间隔值,使得数据的处理时间等于间隔大小;选择较小的最佳间隔值;判断两个连续批次间隔值是否超过较大的最佳间隔值,若是,就进入步骤(206);若否,就进入步骤(207);
步骤(206):计算新的批次间隔值;按照计算的新的批次间隔值执行任务,记录批次运行时间,进入步骤(207);
步骤(207):判断批次运行时间是否小于批次间隔,若是,就进入步骤(208);若否就返回步骤(204);
步骤(208):按照新的批次间隔值作为C级调整的输入值,并对批次间隔值执行C级调整。
所述A级调整是指:当前批次处理时间≥2倍的当前批次间隔值,那么下一个批次处理时间为2倍的当前批次间隔值;
所述B级调整是指:下一个批次间隔值为当前批次间隔值的1+κj倍;其中,j为当前B级调整的次数,j为自然数;κ是0.5到1.0之间的常数;
所述C级调整是指:假设B级调整运行到某一时刻,满足某一批次间隔值下批次运行时间小于或等于当前批次间隔值,那么不再对批次间隔值进行调整,按照当前批次间隔值执行作为接下来批次的间隔值大小,直到所有缓存中的数据计算完成,并把当前批次间隔值作为步骤(4)的起始间隔值大小。
在A级调整阶段,始终处于批次处理时间小于批次间隔阶段。
所述步骤(205)中,判断是否两个连续批次超过较大的最佳间隔值的过程为:假设连续批次间隔值大小为ti、ti+1,处理时间为pi、pi+1,若满足 p i > t i , p i + 1 > t i + 1 p i + 1 t i + 1 > p i + 1 t i + 1 , 那么这两个连续批次间隔值超过较大的最佳间隔值。
所述步骤(4)的步骤如下:
步骤(401):设定两个连续批次为一组,以组为单位进行调整;假设某一组的初始批次间隔长度t-group;
步骤(402):将t-group/ρ作为本组第一批次间隔值t1的初始值,对间隔值进行调整后得到最终本组第一批次间隔值t1,该批次执行时间是p(t1);ρ为调整因子,为小于1且大于0的常数;
步骤(403):将p(t1)作为本组第二批次间隔值t2的初始值,对间隔值进行调整后得到最终本组第一批次间隔值t2,该批次执行时间是p(t2);
步骤(404):计算下一组的批次初始间隔值。
所述步骤(402)中对间隔值进行调整的方法如下:
步骤(4021):设间隔值t1初始值为t1=t-group/ρ,判断上一批次处理时间是否小于或等于批次间隔大小,若是,就进入步骤(4022);若否,就进入步骤(4025);
步骤(4022):调整间隔值t1=∈*t1,其中ρ<∈<1;
步骤(4023):判断是否超过步骤(205)所述的较大间隔值,若是,就进入步骤(4024);若否,就进入步骤(4025);
步骤(4024):批次大小调整为最小批次的1-r倍,即t1=(1-r)t1;进入步骤(4025);
步骤(4025):批次间隔值设置t1=t1/ρ;其中,0<r<1;
所述步骤(404)中,下一组初始间隔值大小tgroup-next为:
t g r o u p - n e x t = p ( t 2 ) - ( p ( t 2 ) - p ( t 1 ) ) 2 p ( t 2 ) - 2 p ( t 1 ) + t g r o u p
其中p(t2)为本组第二批次运行时间,p(t1)为本组第一批次运行时间,tgroup为本组的初始间隔值。
其中,数据源包括Hadoop分布式文件系统HDFS、端口信息、Kafka和Flume。
本发明的该方法通过观察模块收集每个批次的处理时间,在批次控制模块上运行对批次间隔值预处理和调整算法,根据批次控制模块中计算的间隔值从接受器中取出该间隔值对应的数据,并任利用务管理模块将每个批次划分为分布式任务,并分配到工作节点中进行计算。
在预处理阶段,观察模块收集批次执行时间并在批次控制模块执行预处理算法计算间隔值大小。当批次控制模块计算间隔值后,按照该计算的间隔值大小,从接收器中取出与计算的间隔值对应的数据形成一个批次数据,任务管理模块将每个批次划分为分布式任务,并分配到工作节点中进行计算该批次数据。
本发明的有益效果:
(1)该发明可以自动设置批次间隔大小,避免人工设置的误差;
(2)该发明能够自动检测集群负载情况,并结合具体的负载信息对批次间隔大小进行自动调整;
(3)该发明可以对未及时处理的累积的数据进行即时处理,避免因为数据累积导致系统不稳定;
(4)该发明可以使系统的延迟达到较小的状态,减少了流处理的处理时延同时并保障了系统的稳定运行。
附图说明
图1为流处理模型示意图;
图2(a)为批次处理时延和间隔大小为线性关系;
图2(b)为批次处理时延和间隔大小为二次线性关系;
图3(a)为线性负载示意图;
图3(b)为调度延时示意图;
图4为现有技术的系统架构图;
图5为本发明系统架构图;
图6为现有技术的系统流程图;
图7为本发明的系统流程图;
图8(a)为线性负载分析示意图;
图8(b)为非线性负载分析示意图;
图9为本发明的预处理过程流程图;
图10为本发明的动态调整流程图;
图11为本发明的动态调整流程图中间隔值的确定方法流程图;
图12为本发明预处理阶段均时延实验结果图
图13为Reduce负载下实验结果图;
图14为Join负载下实验结果图;
图15为该发明在集群变化时动态调整实验结果图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
1.1批次间隔和延时
批处理在某个特定的周期完成一系列的确定性计算,定义这个特定的周期为批次(Batch)。其周期的大小定义为批次间隔长度(intervalsize)。在系统中可以定义一个时间周期作为间隔长度,例如从数据源以1s为单位读取数据流,那么1s就是间隔长度。除此之外还可以采用利用一定量的数据大小作为间隔长度(intervalsize),例如数据源以1Mb为单位读取流数据,那么1Mb就是间隔长度。对于基于批次的数据流系统来讲,本发明使用时间周期作为间隔长度,而不采用数据大小作为间隔长度。这是因为不同的数据集的速率不同导致数据集到达的时间不同,从而使得流处理的控制变得困难,不利于任务的管理和调度。
图1是一个典型的基于批的流处理模型,定义一条数据流为[ai,ti]其中表示在时间间隔内获得的流数据元组。从图1中看出流处理系统在接收到每个数据元组后,会放入Buffer缓存中,之后缓冲数据会转化为数据块并放入Pushing队列,流处理系统将Pushing队列中的数据源源不断取出并进行计算。因而定义流处理系统的端对端的延时(batchdelay)为流处理系统从接受数据分组ai,到这个数据分组计算完毕之后的时间。设端对端延时
d a i = d b i + d q i + d p i
其中,代表批次[ai,ti]中端对端的延时,为分组在流处理系统中的排队等待时延,为这段数据的处理时延。很显然,整个端对端的时延和批次间隔长度有关系,在相同条件下,每段的批次间隔越长,相应的端对端时延就越大。
1.2端对端延迟和批次间隔关系
对于基于批次的流处理系统,根据操作的不同分为以下三种情况。
情况(一):流处理系统在接收完数据元组ai之后,只对ai进行操作,例如map操作,filter操作。
情况(二):流处理系统在接收完元组ai之后要与其他的元组进行关联性操作,例如join操作。
情况(三):窗口操作,计算过去的一段时间周期内的窗口的记录。
对于情况(一),假定传输速度不变,网络传输不会对数据的处理产生影响。对于元组流处理的处理时间和元组的批次间隔Δti之间的关系为
d p i = &theta; ( &Delta;t i )
其中,
&theta; ( x ) = &alpha; &CenterDot; x &CenterDot; &delta; v + o
δ表示数据流的流入速率,α表示元组处理的影响因子,v表示元组的处理速率,x代表批次处理的间隔大小(用时间表示),ο表示空机运行时的处理速度。可见对于情况(一)中,处理单个元组,元组处理时间和元组的批次间隔时间是线性关系。这里忽略了不同负载下,处理效率的影响。
对于情况(二)中,因为元组最后的计算要考虑到另外元组的的计算情况。所以最终的元组处理时间为
d p i = &theta; ( t i ) &CenterDot; &theta; ( t j )
可见处理时间和元组的批次间隔大小是非线性关系。
图2(a)和图2(b)表示在同一个系统,批次处理时间和批次大小之间的关系。其中图2(a)表示在系统负载和间隔大小之间为线性关系,图2(b)表示系统负载和间隔大小为二次线性关系。横坐标表示批次间隔大小,实线表示批次的处理时间与批次间隔大小之间的关系,虚线表示批次间隔和处理时间相等。在下文中为了叙述的方便本发明把虚线叫做批次间隔线。
由于根据批次处理的时间和批次大小的关系,本发明得出了以下性质:
性质1:假设对于当元组处理时间等于批次间隔时间长度时,系统处于最优状态。这时系统的系统吞吐量最大,流数据不发生阻塞。
证明:观察图2(a)和图2(b),直线的交点表示此时批次处理时间等于间隔时间,这时流处理的运行为最优状态,流数据到来都可以及时处理并且不会发生系统的空载。针对于情况(一)如图2(a)所示,在点l1之前,元组处理时间大于元组间隔时间,从而导致元组在系统中发生阻塞,在点l1之后,元组的处理时间小于元组间隔时间,导致系统空转吞吐量下降。同样,情况(二),在点l2之前阻塞,点l2和点l3之间是吞吐量下降,点l3之后又发生阻塞。因而对于情况(二),本发明的目标是求得两条曲线的第一个交点。
所以本发明把问题就转化为求得两条曲线的第一个交点。可见批次间隔决定了系统的吞吐量和稳定性。在系统的开发过程中,这个间隔值往往会提前由系统开发人员根据经验进行确定,导致这个值的设置主观因素偏多。所以正确设置批次间隔时间成为解决平衡系统延迟和系统吞吐率平衡的关键。
2问题假设
假设所有的批次处理都能够在目标时间内完成,即不存在批次间隔线和处理时间线之间没有交点。对于流处理系统来讲,当批次间隔为0时,系统需要运转,因而其处理时间大于0。根据零点存在性定理可以推出,若批次间隔线和处理时间线之间有交点,那么必然存在一点使得处理时间小于批次间隔。而根据假设批次间隔线和处理时间线之间没有交点,那么得出无论在什么批次间隔之下,其处理时间都大于时间间隔。在这种情况下,无论怎么调整时间间隔都无法使得系统处于资源满足状态,而系统处于资源不满足状态,不属于本发明的研究范围。
3目标实现
由以上所述,本发明最终要实现对批次大小进行调整,使得目标间隔值等于处理时间,从而达到延时和吞吐量的均衡。针对这一问题,把本发明目标分解成以下几个小部分。
(1)流处理系统要做到处理的迅速,因而要求算法具有高效简单的特征。
(2)现实情况中,流处理源的数据传送速率会变化。如果变化之后,系统要针对速率的变化进行调整,时效性要求较高。
集群中每个处理节点的性能差别较大,针对较慢的节点需要对节点上的数据进行处理。
4相关工作
目前的流式处理可以看成三种:
第一种是对MapReduce模型进行实时性改造进而拓展MapReduce的实时性能力。在动态调整批次上有很多的研究,现有技术中有提到的基于历史数据的动态调整批次,将批次大小根据历史数据和查询动态进行调整拓展了批次的动态性。
第二种是基于连续模型的流处理系统,这是目前较为主流的系统。在连续处理模型中窗口的概念。窗口是指在内存中开辟一定的空间来保存最近一段时间内到达的数据流数据,实时地支持查询请求。本发明可以把窗口看成一个较广意义上的批次。对于窗口大小设置研究目前较多,例如窗口动态调整算法。通过对窗口机制例如拥塞避免策略的一些研究有助于研究怎样在批次模型下动态合理设置批次的大小。
具体的批次大小调整分析上,本发明首先想到的是利用建模方法对批次和处理时间进行建模,然后再进行分析预测。有学者利用时间序列预测、灰度模型等方法进行处理,然而这些方法存在噪音以及过拟合等问题,并且大多需要进行傅立叶变换和卷积运算,这些运算需要在计算之前运用较多的时间和资源用于建模运算,并且在不适用于本发明高效的流式运算背景下。因而本发明要寻找一些更为高效、敏捷的处理方案。T.Das提出了基于迭代法的方案给出的启示可以利用迭代思想进行处理。
另外在一些研究上会采取卸载技术(loadshedding)可以使系统在大量突发数据流元组进入系统而系统无法处理时及时脱落其中的部分数据,维持系统的正常运转,提高处理性能。
5动态调整算法
5.1描述
流处理系统在运行时候,由于1)外界流数据源流速变化;2)集群中负载的改变;3)由于网络等外部环境对系统产生较大的影响。为了满足系统的稳定性,采用静态的批次大小设置时必须让批次大小为一个较大的数以满足系统的运行会导致系统的鲁棒性下降,无法满足系统动态地变化。必然导致流数据的堆积,从而影响了系统的稳定性。为了保证系统的稳定运行。因而要对其进行动态调优,动态调优是指通过不断调整系统的各种参数从而达到系统的稳定和相对优化的性能。
对于间隔大小的调整,本发明参考了以往的一些做法。大体分成三类:
1)第一类是以时间序列预测等为代表的预测类算法,该方法需要建立相应的模型。方法存在因为批次处理时间由多重因素决定所以建立具体的模型存在困难,而且由于“脏数据”的存在,容易造成过拟合的问题。
2)第二类是以慢启动为代表的滑动窗口拥塞控制方法,这类的算法灵活性较高,但是有天然的劣势,当操作为非线性关系时候会导致得不到正确结果。如图4所示,慢启动方法中,一开始当系统处于I区时,增加间隔大小可能会导致系统越过II区进入III区,这时系统无法判断此时是III区进而根据算法继续增加批次大小从而导致算法的失败。
3)第三类是利用迭代法进行求解,TathagataDas提出了利用固定点迭代法的处理方法,对最后两个批次的间隔时间作为输入,迭代多次后依据固定迭代法的原则对间隔时间进行迭代计算,使得最终收敛于最优结果。然而此方法存在以下的问题:
3.1)初始批次大小成为算法运行成功的瓶颈,如图3(a)中所示收敛速度不高,Tathagata提出了先设置一个小批次,然后再指数增加批次大小直到某一个Job完成,这样的确可以加快收敛,但是会出现以下两个问题:1)会导致初值计算的准确度,如图3(a)所示采用指数增加批大小方式会导致批次计算可能会越过II区进入III区,2)会产生数据的堆积,因为是以小批次的间隔为起点的,所以在批次间隔没有达到直线的交叉点时,处理时间都大于间隔时间。以处理时间和间隔时间为线性关系为例,假如间隔大小为x,处理时间是间隔时间的一次函数f(x),间隔大小是批次号的指数函数ei,初始的批次大小为σ,流数据源假设是匀速的速度为v,那么直到过程结束,整个的数据堆积量为:
&Sigma; i = 0 k ( f ( &sigma; &CenterDot; 2 i ) - &sigma; &CenterDot; 2 i ) &CenterDot; v
可见数据堆积量和批次个数是增函数。
3.2)调度具有延时性,当出现网络流量激增的情况时,根据分析批次只能在下一批次到来时候进行调度。但是如果网络流量增速很大时,例如20倍,则会导致数据堆积,从而引发系统不稳定。如图3(b)所示系统在处理Block2时(既右边虚线),正在接受Block3的数据,如果Block3的流速变大时,系统并未检测出异常。直到Block2处理完毕之后(既左边虚线),才对异常进行反馈,这时调节批次大小之后。数据已经发生了堆积。
5.2方案设计
在5.1的分析中,本发明比较了各个方法的优缺点。可以看出,在基于批次流处理系统中要确定最佳批次大小要满足第3部分提到的几个目标,其中利用迭代法比较符合要求。因而本发明也采用基于迭代法的批次调整方案。正如5.1最后分析所述采用固定点迭代法有它的弊端,所以本发明在以下几个方面对原系统和原方法进行改造:
(1)为了改进原方法中无法确定初始迭代值问题,本发明分别在流系统的初始阶段增加了预处理过程,力求取得一个较为合理的初始值;
(2)在原来系统中增加了观察模块,部署在Master节点上。通过监控资源、处理延时等信息,控制批次的处理;
(3)改进了迭代算法,一方面利用收敛更快的加速算法加速迭代,另一方面完善了原来算法中对于迭代终止条件的讨论;
(4)结合反馈和自适应算法的思想,使得算法调整和流量变化相适应。
原来的系统框架如图4所示:数据源通过接收器和任务管理模块,分别与若干个工作节点连接。
本发明设计了如下的动态处理模型,该模型可以动态地检测流处理系统中的数据信息。具体的系统架构图5如下:
本发明在原有的架构上面增加了一个观察模块,观察模块的作用是:
[1]收集任务的处理时间pi
[2]记录批次的批次间隔ti
[3]判断处理时间和间隔时间关系
另外在系统内部运行driver端的节点增加批次控制模块,从而可以控制批次的调整。
原来的系统对于批次大小的设置是由用户设置的,其基本流程图如图6所示。
步骤(1-1):用户自定义固定的批次间隔t;
步骤(1-2):外界数据抽取;
步骤(1-3):按照间隔将数据分片。
现有系统流程图如图7所示。
离散流处理模型下批次间隔大小的动态设置方法,包括如下步骤:
步骤(1):初始化间隔值;从外界抽取数据;
步骤(2):对间隔值进行预处理;
步骤(3):对步骤(2)的预处理结果进行判断,判断预处理结果是否达到临界条件,若达到就进行累计数据处理,若未达到就返回步骤(2);
步骤(4):进行动态调整。
5.3预处理方法
预处理阶段是为了确定初始的批次大小值,如5.1分析所述,原有的慢启动方法存在迭代值不准确,而且无法解决数据堆积的问题。本发明根据批次大小与处理时间关系图的特点改进了算法,提高了算法准确率和效率并且解决了数据堆积。本发明假设在预处理阶段系统的负载处于稳定的状态,而且数据源的流速处于匀速。在进行批次大小设置时候,需要定义一个最小的批处理间隔大小,记为ε。预处理的目标是找到最接交点的点。本发明根据处理的时间和缓存区的缓存数据进行动态调整找到目标的点。假设流批次[ai,ti],根据处理时间pi和批次间隔大小ti比较,决定不同的调整策略。
A级调整:当pi>=2ti时,下一个批次大小为2ti。在A级调整阶段,系统始终处于处理时间小于批次间隔阶段。
证明:当处理时间和间隔长度是线性关系时候图8(a),下一个批次t2=2t1即虚线矩形右边界,显然此时值t2小于交点t3。当处理时间和间隔长度是非线性关系时候图8(b),此时批次间隔为t4,以此时的负载点作切线和批次间隔线的交点横坐标为t6,同理可得两倍t4小于t6,而此时小于交点值。
B级调整:假设A级调整算法运行了i次,此时满足pi<2ti,这时批次间隔为2i-1ε,ε为初始的批次大小即系统最小批次,流运行B级调整算法。此时为了防止出现处理时间和批间隔为超线性时,出现越过II区进入III区i的情况,批间隔增加应该减缓,本发明规定下一个批次为上一个批次2倍之内的一个数,并且这个倍数随着迭代的增加而减少。即
ti+j=(1+κj)ti+j-1
其中κ是一个0.5到1.0之间的常数。另外,为了应对非线性关系中出现越过II区进入III区现象时,则需要运行过程中对运行状态进行判断:假设连续批次为[ai-1,ti-1]、[ai,ti]、[ai+1,ti+1],处理时间为pi-1、pi、pi+1,若满足以下条件,那么这两个批次在III区:
p i > t i , p i + 1 > t i + 1 p i + 1 t i + 1 > p i + 1 t i + 1
若判定批次[ai,ti]在III区的话,那么最终的批次间隔即为ti-1
然后让新的批次值为
ti+2=(1+κj+2)ti-1
j=j+1
其中j是迭代次数。然后再按照前面的判断方法进行递归判断。
C级调整:假设B级调整算法运行到某一时刻,满足
pm≤tm
那么不再进行调整,按照此时的间隔大小tm执行操作直到所有缓存中的数据计算完成。并把上一轮的批大小tm作为算法2的起始大小。
综合以上所述,本发明给出了预处理阶段的调整算法,如图9所示;
5.4调整算法
系统的运行过程中,需要对不同运行环境进行动态调整。正如1.2部分讨论阐述,本发明把这个问题归因到建立批次处理时间x和批次间隔关系曲线g(x),并求得该曲线和批次间隔线之间的交点。在前面5.1中本发明讨论了各种调整方法的优劣,并且得出了结论利用迭代法可以避免重新建模的效率,而且敏捷度高。在迭代法中利用固定点迭代法是传统的计算方法,其基本思想为:
1.将曲线表达式g(x)改写为x=f(x);
2.以一个猜测值x1作为初始批次值,并迭代地利用公式x(1) n+1:=f(xn)计算下一批次的批次大小。
注意的是利用上述方法进行计算迭代计算批次的大小时,本发明无需知道批次大小和批次处理时间表达式f(x)的具体形式,只要求知道批次大小x对应的处理时间f(x)值即可。因为在本发明场景中f(x)表达式未知,所以本发明无法采用牛顿法、梯度下降法这些需要计算梯度的方法。本发明在5.1节中也讨论了这种迭代法存在的一些问题。为了改善固定点迭代法的迭代较慢的问题,采用Aitken方法可以提高固定点迭代法的效率。其基本方法如下:
(1)以一个猜测值x1作为初始批次值;
(2)利用公式x(1) n+1:=f(xn)作为第一次迭代值;
(3)利用公式x(2) n+1:=f(x(1) n+1)作为第二次迭代值;
(4)求出修正后的值 x n + 1 : = x ( 2 ) n + 1 - ( x ( 2 ) n + 1 - x ( 1 ) n + 1 ) 2 x ( 2 ) n + 1 - 2 x ( 1 ) n + 1 + x n .
在本发明的系统中,本发明定义x为批次间隔,f(x)为系统在该间隔下的处理时间,通过算法找到点x*满足f(x*)=x*,该点表示其批处理时间和批次间隔相等。在实际的运用中,为了保障系统的运行效率,提高系统的稳定性,本发明要求目标的间隔要稍大一些,这样的话如果处理延时加大系统不会立刻进入,可以给系统一定的缓冲时间。所以本发明定义x’使得x’=x·ρ。其中是一个定值。那么最终的点满足f(x*)=x*·ρ,所以最后求得x*=f(x*)/ρ。因而将上述方法中的f(x)替换为使得f(x)/ρ,进行迭代计算。其中,ρ为调整因子使得间隔值调整大小在设定范围之内。
根据公式可以看出批次间隔算法确定是以两个间隔为一组进行调整的。即本发明最后确定所有的批次间隔大小和初始批次值、第一次迭代值、第二次迭代值有关。本发明利用该算法的思想,让迭代的调整的基本单位变为组,即以2个批次为一组进行调整。增加了调整批次的粒度,不仅使得调整批次的精确值增大,而且在批次调整上可以使本发明采用以下算法进行实现。如图10所示,
运用算法2提到的算法可以基本上解决动态调整批次,但是仍未解决迭代终止和区域判断问题。两个连续的批次可以根据批次间隔大小和处理时间关系判断这两个批次是否处于第III区域。如果利用让批次间隔减少为两个批次间隔最小值的(1-r)倍。
另外还应当判断系统是否处于II阶段。如果批次按照某一间隔运行满足间隔时间>批处理时间,那么此时系统处于II阶段,为了让间隔大小更接近交点,这时应该降低系统的间隔。假设代表调整的因子,满足下面给出证明。
证明:根据算法2可以计算此时待调整的批次大小p(t2)为p(t1)/ρ或者tgroup(当本批次和上一批次在同一组时,此时批次大小为p(t1)/ρ;当本批次和上一批次不在一组的时候,待调整的批次大小为tgroup/ρ)。此时p(t2)在II阶段时满足调整后批次在最优间隔点附近。在流处理系统中,流处理间隔设置过小可以引发数据的积累从而影响系统的稳定性,所以进行调整时的原则应该优先满足减少数据积累的影响。所以本发明定义p(t2)为调整后批次,那么p(t2)>p(t2)。因而本发明调整批次应该满足.综合起来,本发明实现过程如下,如图11所示:
其中ρ<∈<1,ρ为调整因子,为小于1且大于0的常数;利用算法3计算出间隔大小值作为算法2中计算的每组间隔值t值。
5.5容错和复杂性分析
不难发现,流数据的处理时间决定于最慢的那一个任务。在Spark系统中,对系统的容错采取将失败任务或者慢任务重新进行分配,因而当某一个任务节点失败时,Spark会将该节点的任务转移到其它节点。这时需要调整批次的大小以便适应新的运算环境。根据本发明的预判,这时候处理性能降低,为了达到系统的稳定,需要增加批次间隔时间。利用本发明提到的算法可以迅速检测到异常情况并且进行调整,并且不用进行算法调整。
以图4为例,当系统处于稳定状态时,假设此时的批次大小为x,流速为vc,批次处理时间为xp。根据第2部分所述,此时有:
xp=x
如果此时出现了任务的失败,那么Spark系统会进行重新计算必定有:
xp>x
根据算法3中描述,此时需要增大批次间隔。这也与本发明之前的预判一致。
6实验和分析
本发明利用Spark实现这一个模块,并验证本发明算法的特性。采用版本为Spark1.3的原生版本为基础,并在其上面按照第5节所述,编写了Object模块,通过Maven进行编译后部署到实验集群上。实验集群由1个主节点(Master)和8个从节点(Slave)组成,节点的主要配置如表1所示。主节点和四个计算节点的使用配置一,其余四个计算节点使用配置二。节点分布在两个机架中,节点之间使用千兆网连接。为了保证数据可靠性,本发明在Spark底层利用HDFS进行持续化结果,数据块的副本数设置为3。集群利用Yarn提供资源的管理和调度。实验的操作系统采用RedHat6.2服务器版本。
表1集群节点配置信息
CPU/GHz 核数(颗) 内存(GB)
配置一 Intel Xeon CPU E7-4820 2.00 16 32
配置二 Intel Xeon CPU E5-2603 1.8 8 8
(1)预处理性能
比较6个查询的精确度对比,利用固定点迭代、预处理和理论上最低值进行比较
(2)比较延迟;如图12所示;
比较Reduce和Join两种运算下的延迟,代表线性和非线性两种负载关系。如图13和图14所示;
(3)比较健壮性,如图15所示。
批处理的时间间隔划分对系统计算的时延和吞吐率起到重要作用。本发明介绍了一种基于迭代思想的时间间隔划分。通过预处理,改进了迭代效率,利用更加高效的Aitken加速迭代法加速迭代。并且对流速进行感知,避免了数据堆积。最后进行了实验,验证了本发明策略的正确性。然而本发明研究仍局限在单一的查询工作中,面对更为复杂的查询环境以及因为数据流变化和处理负载变化较大引发的系统振荡成为今后的研究工作。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.离散流处理模型下批次间隔大小的动态设置系统,其特征在于,包括:
主节点,其分别与数据源和若干工作节点连接,所述主节点上部署有接收器和任务管理模块,所述接收器依次通过批次控制模块和观察模块与工作节点连接;主节点将从数据源中得到流数据;
所述观察模块,用于对集群中的负载信息和网络流量信息进行监控,计算出符合设定条件的批次间隔值;所述批次控制模块,将批次间隔值传输给接收器,按照批次间隔值对接收器中的流数据切分批次;所述任务管理模块将每个批次划分为分布式任务,并分配到工作节点中进行计算;所述批次间隔值是指从接收器中取出未被处理的数据的时间间隔;按照批次间隔值进行处理的数据叫做间隔值下对应的批次。
2.如权利要求1所述的离散流处理模型下批次间隔大小的动态设置系统,其特征在于,所述数据源是主节点的数据获取的来源;所述接收器包括缓存单元,接收器接收来自数据源的数据并将接收到的数据存储到缓存单元中。
3.一种基于上述任一所述的离散流处理模型下批次间隔大小的动态设置系统的批次间隔大小动态设置方法,其特征在于,包括如下步骤:
步骤(1):设置系统最小的间隔值为初始间隔值;
步骤(2):观察模块和批次控制模块对初始间隔值进行预处理,得到批次处理时间和批次间隔值,任务管理模块按照预处理得到的批次间隔值从接收器中取出该批次间隔值对应的批次数据,并将批次数据转化为批次分布式任务在集群中进行处理;
步骤(3):观察模块对步骤(2)的预处理结果进行判断,判断预处理结果是否达到临界条件,若达临界条件,就转到步骤(4);否则,就返回步骤(2);所述临界条件是指批次处理时间小于该批次间隔值大小;
步骤(4):观察模块和批次控制模块对预处理后的批次间隔值进行动态调整,任务管理模块按照动态调整后的批次间隔值从接收器中取出该批次间隔值对应的批次数据,并将批次数据转化为批次分布式任务在集群中进行处理。
4.如权利要求3所述的批次间隔大小动态设置方法,其特征在于,所述步骤(2)的过程,包括:
步骤(201):按照初始间隔值从接收器中取出初始间隔值对应的数据作为一个批次数据,并记录初始间隔值对应批次的处理时间;
步骤(202):判断初始间隔值下的批次处理时间是否大于等于2倍的初始间隔值;若是,就进入步骤(203);否则,进入步骤(204);
步骤(203):对批次间隔值进行A级调整:设定下一个批次间隔值为本次间隔值的两倍,按照新计算的下一个间隔值从接收器中取出下一个间隔值的流数据,并对该流数据进行计算,并记录下一个间隔值对应批次的处理时间,并进入步骤(204);
步骤(204):对批次间隔值进行B级调整:设定下一批次间隔值是当前批次间隔值2倍内的数,而且批次间隔值随着运行次数增加而减少,按照新计算的下一个间隔值从接收器中取出下一个间隔值的流数据,并对流数据进行计算,并记录下一个间隔值对应批次的处理时间;
步骤(205):当对流数据的处理涉及到对多流处理时,会有两个最佳间隔值,使得数据的处理时间等于间隔大小;选择较小的最佳间隔值;判断两个连续批次间隔值是否超过较大的最佳间隔值,若是,就进入步骤(206);若否,就进入步骤(207);
步骤(206):计算新的批次间隔值;按照计算的新的批次间隔值执行任务,记录批次运行时间,进入步骤(207);
步骤(207):判断批次运行时间是否小于批次间隔,若是,就进入步骤(208);若否就返回步骤(204);
步骤(208):按照新的批次间隔值作为C级调整的输入值,并对批次间隔值执行C级调整。
5.如权利要求4所述的批次间隔大小动态设置方法,其特征在于,所述A级调整是指:当前批次处理时间≥2倍的当前批次间隔值,那么下一个批次处理时间为2倍的当前批次间隔值;
所述B级调整是指:下一个批次间隔值为当前批次间隔值的1+κj倍;其中,j为当前B级调整的次数,j为自然数;κ是0.5到1.0之间的常数;
所述C级调整是指:假设B级调整运行到某一时刻,满足某一批次间隔值下批次运行时间小于或等于当前批次间隔值,那么不再对批次间隔值进行调整,按照当前批次间隔值执行作为接下来批次的间隔值大小,直到所有缓存中的数据计算完成,并把当前批次间隔值作为步骤(4)的起始间隔值大小。
6.如权利要求5所述的批次间隔大小动态设置方法,其特征在于,在A级调整阶段,始终处于批次处理时间小于批次间隔阶段。
7.如权利要求4所述的批次间隔大小动态设置方法,其特征在于,所述步骤(205)中,判断是否两个连续批次超过较大的最佳间隔值的过程为:假设连续批次间隔值大小为ti、ti+1,处理时间为pi、pi+1,若满足那么这两个连续批次间隔值超过较大的最佳间隔值。
8.如权利要求3所述的批次间隔大小动态设置方法,其特征在于,所述步骤(4)的步骤如下:
步骤(401):设定两个连续批次为一组,以组为单位进行调整;假设某一组的初始批次间隔长度t-group;
步骤(402):将t-group/ρ作为本组第一批次间隔值t1的初始值,对间隔值进行调整后得到最终本组第一批次间隔值t1,该批次执行时间是p(t1);ρ为调整因子,为小于1且大于0的常数;
步骤(403):将p(t1)作为本组第二批次间隔值t2的初始值,对间隔值进行调整后得到最终本组第一批次间隔值t2,该批次执行时间是p(t2);
步骤(404):计算下一组的批次初始间隔值。
9.如权利要求8所述的批次间隔大小动态设置方法,其特征在于,所述步骤(402)中对间隔值进行调整的方法如下:
步骤(4021):设间隔值t1初始值为t1=t-group/ρ,判断上一批次处理时间是否小于或等于批次间隔大小,若是,就进入步骤(4022);若否,就进入步骤(4025);
步骤(4022):调整间隔值t1=∈*t1,其中ρ<∈<1;
步骤(4023):判断是否超过步骤(205)所述的较大间隔值,若是,就进入步骤(4024);若否,就进入步骤(4025);
步骤(4024):批次大小调整为最小批次的1-r倍,即t1=(1-r)t1;进入步骤(4025);
步骤(4025):批次间隔值设置t1=t1/ρ;其中,0<r<1。
10.如权利要求8所述的批次间隔大小动态设置方法,其特征在于,所述步骤(404)中,下一组初始间隔值大小tgroup-next为:
其中p(t2)为本组第二批次运行时间,p(t1)为本组第一批次运行时间,tgroup为本组的初始间隔值。
CN201610124877.0A 2016-03-04 2016-03-04 离散流处理模型下批次间隔大小的动态设置系统及方法 Active CN105677489B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610124877.0A CN105677489B (zh) 2016-03-04 2016-03-04 离散流处理模型下批次间隔大小的动态设置系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610124877.0A CN105677489B (zh) 2016-03-04 2016-03-04 离散流处理模型下批次间隔大小的动态设置系统及方法

Publications (2)

Publication Number Publication Date
CN105677489A true CN105677489A (zh) 2016-06-15
CN105677489B CN105677489B (zh) 2017-06-20

Family

ID=56306780

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610124877.0A Active CN105677489B (zh) 2016-03-04 2016-03-04 离散流处理模型下批次间隔大小的动态设置系统及方法

Country Status (1)

Country Link
CN (1) CN105677489B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648904A (zh) * 2017-01-09 2017-05-10 大连理工大学 一种流式数据处理自适应速率控制方法
CN107704594A (zh) * 2017-10-13 2018-02-16 东南大学 基于SparkStreaming的电力系统日志数据实时处理方法
CN110704206A (zh) * 2019-09-09 2020-01-17 上海凯京信达科技集团有限公司 一种实时计算方法、计算机存储介质及电子设备
CN113120489A (zh) * 2020-01-16 2021-07-16 中国科学技术大学 紧致化仓储系统的设计方法
CN113434303A (zh) * 2021-08-27 2021-09-24 湖北星地智链科技有限公司 批处理的遥感影像智能处理模型预测性能优化系统及方法
CN115329179A (zh) * 2022-10-14 2022-11-11 卡奥斯工业智能研究院(青岛)有限公司 数据采集资源量控制方法、装置、设备及存储介质
CN116737349A (zh) * 2023-08-16 2023-09-12 中国移动紫金(江苏)创新研究院有限公司 流式数据处理方法、系统及存储介质
US11853017B2 (en) 2017-11-16 2023-12-26 International Business Machines Corporation Machine learning optimization framework

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011139829A2 (en) * 2010-04-28 2011-11-10 Stc. Unm System and methods for performing medical physics calculations
CN104317877A (zh) * 2014-10-21 2015-01-28 上海交通大学 一种基于分布式计算的网络用户行为数据实时处理方法
CN104935460A (zh) * 2015-05-05 2015-09-23 浙江大学 一种基于数据面流量预测的多控制器节能优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011139829A2 (en) * 2010-04-28 2011-11-10 Stc. Unm System and methods for performing medical physics calculations
CN104317877A (zh) * 2014-10-21 2015-01-28 上海交通大学 一种基于分布式计算的网络用户行为数据实时处理方法
CN104935460A (zh) * 2015-05-05 2015-09-23 浙江大学 一种基于数据面流量预测的多控制器节能优化方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106648904A (zh) * 2017-01-09 2017-05-10 大连理工大学 一种流式数据处理自适应速率控制方法
CN107704594A (zh) * 2017-10-13 2018-02-16 东南大学 基于SparkStreaming的电力系统日志数据实时处理方法
CN107704594B (zh) * 2017-10-13 2021-02-09 东南大学 基于SparkStreaming的电力系统日志数据实时处理方法
US11853017B2 (en) 2017-11-16 2023-12-26 International Business Machines Corporation Machine learning optimization framework
CN110704206A (zh) * 2019-09-09 2020-01-17 上海凯京信达科技集团有限公司 一种实时计算方法、计算机存储介质及电子设备
CN113120489A (zh) * 2020-01-16 2021-07-16 中国科学技术大学 紧致化仓储系统的设计方法
CN113434303A (zh) * 2021-08-27 2021-09-24 湖北星地智链科技有限公司 批处理的遥感影像智能处理模型预测性能优化系统及方法
CN115329179A (zh) * 2022-10-14 2022-11-11 卡奥斯工业智能研究院(青岛)有限公司 数据采集资源量控制方法、装置、设备及存储介质
CN115329179B (zh) * 2022-10-14 2023-04-28 卡奥斯工业智能研究院(青岛)有限公司 数据采集资源量控制方法、装置、设备及存储介质
CN116737349A (zh) * 2023-08-16 2023-09-12 中国移动紫金(江苏)创新研究院有限公司 流式数据处理方法、系统及存储介质
CN116737349B (zh) * 2023-08-16 2023-11-03 中国移动紫金(江苏)创新研究院有限公司 流式数据处理方法、系统及存储介质

Also Published As

Publication number Publication date
CN105677489B (zh) 2017-06-20

Similar Documents

Publication Publication Date Title
CN105677489A (zh) 离散流处理模型下批次间隔大小的动态设置系统及方法
CN107330516B (zh) 模型参数训练方法、装置及系统
US11531926B2 (en) Method and apparatus for generating machine learning model by using distributed computing framework
US11240117B2 (en) Intelligent analytic cloud provisioning
Xu et al. LogGP: A log-based dynamic graph partitioning method
Kolomvatsos et al. An efficient time optimized scheme for progressive analytics in big data
US20190220298A1 (en) A method and system for scaling resources, and a computer program product
CN112751726B (zh) 一种数据处理方法、装置、电子设备和存储介质
TW201322022A (zh) 分散式資料流處理方法及其系統
CN109978177B (zh) 模型训练方法、业务处理方法、装置及相关设备
CN105989374A (zh) 一种在线训练模型的方法和设备
CN108390771B (zh) 一种网络拓扑重建方法和装置
Li et al. Hone: Mitigating stragglers in distributed stream processing with tuple scheduling
WO2022252546A1 (zh) 一种信息调节方法、设备及存储介质
Yang et al. Optimizing aggregation frequency for hierarchical model training in heterogeneous edge computing
Yue et al. Desis: Efficient Window Aggregation in Decentralized Networks.
Madsen et al. Enorm: Efficient window-based computation in large-scale distributed stream processing systems
Gu et al. Deadline-aware complex event processing models over distributed monitoring streams
WO2017113865A1 (zh) 一种大数据增量计算方法和装置
Ndreca et al. Discrete time GI/Geom/1 queueing system with priority
Ding et al. Feature‐based high‐availability mechanism for quantile tasks in real‐time data stream processing
He et al. Analysis of queueing systems with customer interjections
Cha et al. A stochastic breakdown model for an unreliable web server system and an optimal admission control policy
Zaarour et al. Grand challenge: Automatic anomaly detection over sliding windows
Liu et al. ROUTE: run‐time robust reducer workload estimation for MapReduce

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant