一种基于数据流预测的Storm任务伸缩调度算法制造技术

技术编号:15982455 阅读:36 留言:0更新日期:2017-08-12 05:35
本发明专利技术涉及一种基于数据流预测的Storm任务伸缩调度算法,属于数据交换网络领域。通过监控模块获得用户提交的Topology任务的实时运行数据,求解在满足组件负载的情况下Topology中相连组件的并行度,然后迭代求出Topology中所有组件的并行度。利用时间序列模型来预测Topology要处理的数据量,并求得在该情况下Topology中开始组件spout的较优并行度,获得预测情况下的Topology中各组件的较优并行度,并进行调度。在调度中使用线上调度算法,最大限度减少结点间的网络通信并保证集群的负载均衡。本发明专利技术克服了现有对Topology中各组件间的关联性考虑的不足,弥补了不能快速高效地求解到用户提交Topology中各组件的较优并行度的不足,具有提前预测变化、提高吞吐量、降低处理时延的优点。

【技术实现步骤摘要】
一种基于数据流预测的Storm任务伸缩调度算法
本专利技术属于数据交换网络领域,涉及一种基于数据流预测的Storm任务伸缩调度算法。
技术介绍
云计算、物联网、社交媒体以及移动互联网等新兴技术和应用模式的普及和推广,促使全球数据量急剧增加,推动人类社会进入大数据时代。在大数据背景下,数据蕴含了丰富的内涵和价值,数据的时效性越来越重要,数据的流式特征也越来越显著,流式计算的重要性也越来越突出。业界推出了S4、Spark、Storm等流式计算框架。Storm是个实时的、分布式的以及具备高容错的计算系统。Storm可以处理大批量的数据,也可以在保证高可靠性的前提下让处理进行得更实时化,能快速处理或输出所有信息。Storm具备容错和分布计算等特性,可以到不同的机器上进行大批量的数据处理。正因Storm所表现出来的强大功能,使得它被广泛应用于国内外的互联网企业,如Twitter、阿里巴巴、雅虎等。但在Storm的应用及研究中,发现其在多个方面都有待完善。Storm是一个实时流式计算框架,时效性要求高,而调度算法的好坏直接影响到tuple的处理时延。Storm中默认的任务调度器使用轮询调度的策略,首先是计算集群中可供分配的slot资源,并判断当前已分配给运行Topology的slot是否需要重新分配,然后对可分配的slot进行排序。计算Topology的executor信息,最后将资源平均地分配给Topology。在调度算法的优化上,业界已有许多相关研究:L.Aniello等提出了一种将相互通信频率高的executor调度到同一个slot上来减少网络通信的改进调度算法,分为离线版:分析Topology的静态结构,决定那些executor应该放在同一个slot;在线版:监控executor运行时的通信情况,将通信频率高的executor放到同一个slot。JielongXu等指出L.Aniello所提出的离线处理忽视了集群中结点的负载情况和在线处理的调度算法模型缺乏有力的数学证明。作者在此基础上进行了优化,提出将executor按照trafficload降序排列,然后按序依次将executor分配到负载最轻的slot上,同时每个workernode上同一个Topology的executor会被分配到同一个slot上和每个workernode的任务量不会过载。PengB等提出一种最大化资源利用率的同时最小化网络通信来提升系统性能的调度算法。其要解决的核心问题是:如何找到一种task到workernode的映射,使所有的资源请求都能够得到满足同时结点不会出现资源过载。LongS等结合Storm的不同应用场景,如恢复历史调度任务、单节点任务调度、资源需求调度等,对Storm的资源分配和调度算法做了改进。SunD等提出基于分布式QoS(qualityofservice)感知的调度算法,使得Storm适用于地理信息系统的研究中。在上述的调度算法中,是针对用户配置好Topology任务并行度的调度,忽视了用户配置的Topology中的worker数和各个组件的executor数对处理性能也有着严重的影响。当Storm要处理的数据流比较平稳时,存在一个较优的各组件间的并行度关系,而用户很难在提交Topology时设置出各个组件的较优并行度,当设置不合理时会造成Tuple处理时延的增加。同时,在某些业务中,如微博中实时热词统计,Storm要处理的微博数据流是实时变化的,一天中存在高峰期低峰期,并且有时会因为某个事件出现爆炸式的增长,此时仅仅通过上述的调度算法的优化并不能达到目的。因此希望Storm计算框架中能预测要处理的数据流,动态调整Topology中各个组件的并行度,即对用户提交的任务能进行弹性伸缩。在现有的关于Storm弹性伸缩中,对Topology中各组件间的关联性考虑不足,同时在弹性伸缩时采用简单的添加或较少各组件的并行度,直到获得较优的各组件并行度,这个过程中可能会进行多次任务调度,而每次任务调度是有时间开销的,因此在一定程度上增加了tuple的处理时延。同时现有的伸缩调整都是在系统负载发生变化时才对用户提交的Topology中各组件的并行度进行调整,而每次的调整都需要一定的时间,因此在一定程度上来说降低了系统的吞吐量。
技术实现思路
有鉴于此,本专利技术的目的在于提供一种基于数据流预测的Storm任务伸缩调度算法,提前预测变化,根据监控得到的运行数据快速高效的求得Topology中各组件的较优并行度,从而提高吞吐量,降低处理时延。为达到上述目的,本专利技术提供如下技术方案:一种基于数据流预测的Storm任务伸缩调度算法,包括以下步骤:S1:设置目标函数;S2:求解Topology中worker数和各个组件的executor数;S3:预测Topology要处理的数据流并求解开始组件spout所需的executor数;S4:任务调度。进一步,所述S1设置目标函数为:其中,Ntuple为所处理tuple的数量,Trec为tuple由发送节点到处理节点所需的接受时间,Tqueue为tuple到处理节点后因bolt繁忙tuple排队的时间,Tproc为tuple的逻辑处理时间,Tsend为tuple处理完后形成新的tuple的发送时间。进一步,所述S2具体为:S201:确定Topology中开始组件spout所需的executor数,通过公式依次求得后继组件中的较优的executor数;其中,Nexecutori为第i个组件的executor数量,Nexecutori-1为第i-1个组件的executor数量,Vgenerate为前一组件的executor的tuple产生速度,通过监控Topology的运行数据然后取平均值获得,t为一个周期开始后的时间,σ为通过多次试验然后取得一个较优的值,Vproc为第i个组件中executor的tuple处理速度,通过监控Topology的运行数据然后取平均值获得;S202:求得Topology所需的executor总数;S203:根据Storm官方建议每个worker中15个executor,求解得到Topology所需的worker数。进一步,所述S3具体为:使用时间序列模型(AutoregressiveInregratedMovingAverage,ARIMA)预测Topology要处理的数据量,ARIMA(p,d,q)表示为:Xt=σ1Xt-1+σ2Xt-2+…+σpXt-p+ut-θ1ut-1-θ1ut-1-…-θqut,其中p为自回归项数;q为滑动平均项数;Xt-1,Xt-2为Xt的前期值;ut,ut-1,ut-2为Xt在t期,t-1期,t-2期的随机误差项,是相互独立的白噪声序列;d是使原序列Xt由非平稳时间序列转换为平稳时间序列时对其成为平稳序列所做的差分次数;σ1,σ2,…,σp为自回归系数,θ1,θ2,…,θq为移动平均系数,是模型的待估参数。进一步,所述S4具体为:当获得topology中各组件较优的并行度后,进行Storm任务调度;使用线上调度算法,在运行时,通过监控获得实时数据,包括executor的负载情况、executor的tuple接受率和发送率、集群中的节点本文档来自技高网
...
一种基于数据流预测的Storm任务伸缩调度算法

【技术保护点】
一种基于数据流预测的Storm任务伸缩调度算法,其特征在于:该算法包括以下步骤:S1:设置目标函数;S2:求解Topology中worker数和各个组件的executor数;S3:预测Topology要处理的数据流并求解开始组件spout所需的executor数;S4:任务调度。

【技术特征摘要】
1.一种基于数据流预测的Storm任务伸缩调度算法,其特征在于:该算法包括以下步骤:S1:设置目标函数;S2:求解Topology中worker数和各个组件的executor数;S3:预测Topology要处理的数据流并求解开始组件spout所需的executor数;S4:任务调度。2.如权利要求1所述的一种基于数据流预测的Storm任务伸缩调度算法,其特征在于:所述S1设置目标函数为:其中,Ntuple为所处理tuple的数量,Trec为tuple由发送节点到处理节点所需的接受时间,Tqueue为tuple到处理节点后因bolt繁忙tuple排队的时间,Tproc为tuple的逻辑处理时间,Tsend为tuple处理完后形成新的tuple的发送时间。3.如权利要求1所述的一种基于数据流预测的Storm任务伸缩调度算法,其特征在于:所述S2具体为:S201:确定Topology中开始组件spout所需的executor数,通过公式依次求得后继组件中的较优的executor数;其中,Nexecutori为第i个组件的executor数量,Nexecutori-1为第i-1个组件的executor数量,Vgenerate为前一组件的executor的tuple产生速度,通过监控Topology的运行数据然后取平均值获得,t为一个周期开始后的时间,σ为通过多次试验然后取得一个较优的值,Vproc为第i个组件中executor的tuple处理速度,通过监控Topology的运行数据然后取平均值获得;S202:求得Topology所需的executor总数;S203:根据Storm官方建议每个worke...

【专利技术属性】
技术研发人员:熊安萍段杭彪蒋溢祝清意蒋亚雄
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1