The invention belongs to the technical field of computer application, and an adaptive rate control method for flow data processing. This method is based on the computational framework of common data receiving message queue and data distributed computing cluster, according to the current situation, through the pre sheet adjustment data parallelism, and through real-time adaptive rate control method of the dynamic adjustment of cluster data quantity, to ensure the stability of cluster computing, reduce data stream processing delay. With the gradual deepening of big data into various industries, the application of mass data real-time processing gradually expanded. The real-time and stability of mass data processing system is very important. This method improves the stability and efficiency of computing cluster to some extent without increasing the number of hardware and the complexity of task programming.
【技术实现步骤摘要】
本专利技术属于计算机应用
,涉及一种流式数据处理自适应速率控制方法。
技术介绍
当前,随着技术的发展,数据量日益增加,“大数据”技术已经渗透到各行各业。目前,许多设备都会收集大量的数据,并希望对数据及时处理从而发掘其中的价值。例如智能手机、传感器、物联网设备、社交网络和在线事务系统产生的数据都需要不断的收集,通过实时的对数据进行分析,从而实现快速响应。因此,如何提升数据实时分析处理的能力也成为一个十分重要的问题。当前一些主流的大数据实时处理框架有Spark,Storm,Flink等。SparkStreaming是对Spark核心API的扩展,它是按照一定的时间间隔将任务分成一系列短小的批处理作业进行处理。Storm是以单条记录为粒度进行处理的流式处理系统,拥有良好的实时性。Flink和Spark类似,其核心是流式数据流引擎,为数据流上的分布式计算提供了数据分发、通信和容错。但是和SparkStreaming相比,Storm的吞吐量较低,且实现复杂的统计需求较为困难。Flink的批处理和流式处理是两个独立的模块,无法进行结合。SparkStreaming因为使用Micro-batch处理数据,可以达到较高的吞吐率,在满足秒级的实时性要求同时可以达到较高的效率。流式处理系统需要良好的实时性,并且在处理突发任务时能保证系统的稳定。通常,流式处理架构通过以下几种方式保证系统的实时性和稳定性:1.当处理的负载超过系统处理能力上限时,通过丢弃部分数据降低工作负载;2.动态资源管理;3.动态批次大小。但是丢弃数据通常会造成计算结果不准确,动态资源管理为了针对数据 ...
【技术保护点】
一种流式数据处理自适应速率控制方法,其特征在于,包括如下步骤:第一步,数据接收和分区缓存流式数据处理系统接收的数据,将一条完整的数据为一行,或者使用无歧义的特殊分隔符对数据进行分割;使用消息队列作为数据源对数据进行汇总,并对数据按照分区规则将数据保存到消息队列中的某个分区中;第二步,数据预分片从消息队列中读取数据前,将消息队列中单个数据分片映射到多个流式数据处理集群的分片中,映射的数量根据集群虚拟核心数量进行设置;第三步,处理速率实时反馈控制从消息队列中读取数据,并根据当前的数据处理速率上限确定最多可以从消息队列中读取的数据数量,避免读取的数据数量超过计算集群的最大处理能力;实时速率控制器的处理速率上限计算方法如下:3.1)通过慢启动的方式开始进行调整,初始的数据处理速率上限设置为消息队列的每个分片每秒获读取n条数据,50<n<1000;3.2)第一批完成后,对以后每一批按照以下的步骤对数据处理速率上限进行计算;3.2.1)在批次开始时,提交当前批次的开始时间t_batchst给速率控制器;3.2.2)在批次完成时,提交当前批次的处理结束时间t_batched,处理该批次用 ...
【技术特征摘要】
1.一种流式数据处理自适应速率控制方法,其特征在于,包括如下步骤:第一步,数据接收和分区缓存流式数据处理系统接收的数据,将一条完整的数据为一行,或者使用无歧义的特殊分隔符对数据进行分割;使用消息队列作为数据源对数据进行汇总,并对数据按照分区规则将数据保存到消息队列中的某个分区中;第二步,数据预分片从消息队列中读取数据前,将消息队列中单个数据分片映射到多个流式数据处理集群的分片中,映射的数量根据集群虚拟核心数量进行设置;第三步,处理速率实时反馈控制从消息队列中读取数据,并根据当前的数据处理速率上限确定最多可以从消息队列中读取的数据数量,避免读取的数据数量超过计算集群的最大处理能力;实时速率控制器的处理速率上限计算方法如下:3.1)通过慢启动的方式开始进行调整,初始的数据处理速率上限设置为消息队列的每个分片每秒获读取n条数据,50<n<1000;3.2)第一批完成后,对以后每一批按照以下的步骤对数据处理速率上限进行计算;3.2.1)在批次开始时,提交当前批次的开始时间t_batchst给速率控制器;3.2.2)在批次完成时,提交当前批次的处理结束时间t_batched,处理该批次用时t_proclast,,该批次在批次队列中的等待时间t_waitlast,该批次处理数据的数量elemnumlast;3.2.3)在当前批次提交时,对当前批次的数据处理速率上限进行计算,分为以下三种情况:第一种情况,在当前批次提交时,上一批次执行完成,且上一批次数据的处理时间与流式数据批处理集群的批次间隔t_interval相差大于松弛参数prelx;第二种情况,当前批次提交时,上一批次执行完成,且上一批次数据的处理时间位于t_interval-prelx和t_interval之间;prelx=min(50,t_interval×0.05);第三种情况,当前批次提交时,上一批次尚未完成;第一种情况和第三种情况都基于PID控制算法对数据处理速率上限计算:newRate=latestRate-Kp×error-Ki×historicalError-Kd×dError(1)其中,latestRate为最新处理完成批次的数据处理速率上限;Kp为比例系数,取值为1;error为数据处理速率的估计误差;Ki为积分系数,取值为0.2;historicalError为数据处理速率的累积误差;Kd为微分系数,为了减小噪声数据对系统的影响,取值为0;dError为偏差速率变化率;数据处理速率的估计误差error为:error=latestRate-elemnumlastt_proclast+Kblock×blockTime---(2)]]>其中,elemnumlast为最新处理完成的批次处理数据的数量;t_proclast为最新处理完成的批次处理的时间;Kblock为阻塞系数,阻塞系数取值0.3;blockTime为估计的处理时间增加值;当为第一种情况时,blockTime取值为0,此时由公式(2)计算得到的结果为数据处理速率的估计误差;当为第三种情况时,blockTime计算如公式(3)所示:blockTime=max(t_interval-(submit_time-t_batchst),brelx)(3)其中,t_interval为批次提交的间隔;submit_time为任务的提交时间;在批次间隔大于1000ms时,brelx=50ms,当批次间隔小于1000ms时,brelx=t_interval×0.05;数据处理速率的累积误差historicalError的计算如公式(4)所示:historicalError=(t_waitlast+Kblock×blockTime)×processingRatet_interval---(4)]]>其中,t_waitlast为最新处理完成的批次在批次队列中等待的时间;当为第一种情况时,blockTime取值为0;当为第三种情况时,blockTime计算如公式(3)所示;processingRate表示最新处理完成批次的数据处理速率,其计算如公式(5)所示:processingRate=elemnumlastt_proclast---(5)]]>偏差速率变化率dError的计算如公式(6)所示:dError=error-latestErrordelaySinceUpdate---(6)]]>其中,latestError表示前一个处理完成批次的速率估计误差,delaySinceUpdate表示前一个处理完成批次和最近完成批次之间经过的时间,其计算方式如公式(7)所示:delaySinceUpdate=lastProcessingEndTime-latestTime(7)第二种情况,使用最新处理完成批次的数据处理速率上限latestRate作为当前批次的数据处理速率上限newRate;第四步,数据的读取和实时处理;流式数据批处理集群按照第三步计算的数据处理速率上限和第二步预分片规则对数据进行读取;在本批次数据处理完成之后,将结果实时输出到数据库中。2.根据权利要求1所述的一种流式数据处理自适应速率控制方法,其特征在于,所述的第二步的数据预分片的具体方法为:1)流式数据处理集群以批次的时间间隔为周期,获取消息队列的分片信息;对于每一个批次,计算集群都需要获取消息队列中的n个数据分片,则消息队列中数据分片信息表示为s_partition=(s_partitioni|i=1...n);对于当前批次,消息队列每一个分片s_partitioni的信息包括:分片所属的主题topic、消息队列分片的唯一ID、当前批次需要获取的数据在消息队列指定分片中的起始位置start_of...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。