[发明专利]一种流式数据处理自适应速率控制方法有效
申请号: | 201710011464.6 | 申请日: | 2017-01-09 |
公开(公告)号: | CN106648904B | 公开(公告)日: | 2020-06-12 |
发明(设计)人: | 申彦明;李晓东 | 申请(专利权)人: | 大连理工大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F16/2455;G06F16/182 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 梅洪玉 |
地址: | 116024 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于计算机应用技术领域,一种流式数据处理自适应速率控制方法。该方法基于常用的数据接收消息队列和大数据分布式计算框架,根据当前计算集群的情况,通过预分片的方式调整数据处理的并行度,并通过自适应实时速率控制方法动态调整集群当前处理数据的数量,保证计算集群的稳定性,降低数据流式处理的延迟。随着“大数据”逐步深入到各个行业中,海量数据实时处理的应用范围逐步扩大。海量数据处理系统的实时性和稳定性是十分重要的。该方法在不增加计算集群硬件数量和任务编程复杂度的情况下,在一定程度上提升了计算集群的稳定性和处理效率。 | ||
搜索关键词: | 一种 数据处理 自适应 速率 控制 方法 | ||
【主权项】:
一种流式数据处理自适应速率控制方法,其特征在于,包括如下步骤:第一步,数据接收和分区缓存流式数据处理系统接收的数据,将一条完整的数据为一行,或者使用无歧义的特殊分隔符对数据进行分割;使用消息队列作为数据源对数据进行汇总,并对数据按照分区规则将数据保存到消息队列中的某个分区中;第二步,数据预分片从消息队列中读取数据前,将消息队列中单个数据分片映射到多个流式数据处理集群的分片中,映射的数量根据集群虚拟核心数量进行设置;第三步,处理速率实时反馈控制从消息队列中读取数据,并根据当前的数据处理速率上限确定最多可以从消息队列中读取的数据数量,避免读取的数据数量超过计算集群的最大处理能力;实时速率控制器的处理速率上限计算方法如下: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;第四步,数据的读取和实时处理;流式数据批处理集群按照第三步计算的数据处理速率上限和第二步预分片规则对数据进行读取;在本批次数据处理完成之后,将结果实时输出到数据库中。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710011464.6/,转载请声明来源钻瓜专利网。
- 上一篇:复合密封气缸垫结构
- 下一篇:一种吸气式火箭组合动力装置