一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法

文档序号:8322177阅读:350来源:国知局
一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法
【技术领域】
[0001] 本发明涉及大数据处理、实时流计算和优先级保障技术领域,特别是涉及一种基 于Storm实时流计算框架的应用网络带宽动态优先级保障方法。
【背景技术】
[0002] 近年来随着处理器和集成电路技术的不断进步,个人电脑、手持设备和智能手机 等个性化设备得到了很大地普及和推广。与此同时,新型的互联网使用模式例如电子商务、 社交网络等也在不断深入人们生活的方方面面,由此产生的用户数据无论从容量、速度和 多样性上都超过了人类历史上的任何一个阶段,呈现出了爆炸性增长。充分挖掘这些实时 纷杂的海量用户数据,对于理解用户使用行为进而揭示潜在用户需求,对于互联网公司不 断完善服务产品,增加产品收益,具有重要的商业价值。storm实时流计算框架的出现,以其 灵活的处理流程构建、高效的分布式并行以及透明容错等特点,有效提高了实时流处理应 用的开发效率,成为产业界快速构建实时流计算应用的首选。
[0003] Storm实时流计算框架采用了分布式计算的思想,充分利用大规模计算节点为应 用程序性能提供良好的可扩展性,同时支持用户定义复杂的数据流(datastream)处理逻 辑,允许在不同的计算阶段对数据流进行不同形式的划分。如图1所示,Storm中应用对数 据流的处理逻辑被定义在计算拓扑(Topology)中,每一个计算拓扑则由任意多个计算组 件组成,不同计算组件按照其在计算拓扑中的角色不同,又可以分为数据源组件(Spout,或 Spoutl)和处理组件(Bolt,或Boltl-Bolt9)。数据源组件负责将外部的数据进行相关转 化,然后以一定的速率注入到计算拓扑中,而处理组件则分别负责不同的处理逻辑,对流经 其的数据流进行相关转化。组件间流动的数据被组织为元组(Tuple)的形式,每一个元组 可以包含多个数据域(Value)。组件间的元组数据分发模式可以分为4种,分别是洗牌分 发(ShuffleGrouping)、按域分发(FieldGrouping)、全分发(AllGrouping)和指定分发 (GlobalGrouping)。洗牌分发模式下,上游(Upstream)组件产生的元组会均勾分发到下 游(Downstream)与其衔接的组件上;按域分发模式下,上游组件产生元组中域值相同的元 组会分发到下游相同的组件上;全分发模式下,上游组件产生的元组会向下游每一个组件 分发一份副本;指定分发模式下,上游组件产生的元组会被分发到指定的下游组件上。
[0004] 应用的计算拓扑定义完成之后,Storm现在的组件调度采用轮询方式 (Round-Robin),将数据源和处理组件放置到不同执行节点(Worker)上运行,从而实现系 统负载均衡的效果。现有组件调度方法只考虑了单一用户的应用场景,无法满足多个拥 有不同优先级的用户应用共享Storm集群资源的情况。特别是在应用负载出现短时间峰 值的情况下,无法保障高优先级应用对网络带宽的优先使用,从而使得数据处理时延显著 增加,应用服务质量严重下降。同时,不同组件计算行为各不相同,处理数据流的选择率 (Selectivity,输出数据量与输入数据量的比率)差异较大,再结合不同的数据分发模式, 最终会对网络带宽的使用产生较大影响。
[0005] 综上可以看出,在不同优先级应用共享Storm集群的情况下,如何根据应用的实 时负载水平、计算行为特征以及数据分发模式,动态调节应用对网络带宽使用的优先级,对 于降低数据流的处理时延、满足应用峰值负载的服务质量要求至关重要,同时保障低优先 级应用能够使用到合理的网络带宽资源,避免"饥饿"现象的产生,对于维护整个系统的可 用性是不可或缺的。

【发明内容】

[0006] 针对现有Storm实时流技术的以上缺陷和改进需求,本发明提出了一种基于 Storm实时流计算框架的应用网络带宽动态优先级保障方法,解决了原有Storm系统在多 个用户共享集群资源的情况下,无法满足高优先级应用对网络带宽的优先使用,同时在应 用负载出现波动时,无法对应用优先级进行动态调整的问题。
[0007] 本发明提出了一种基于Storm实时流计算框架的应用网络带宽动态优先级保障 方法,其特征在于有下列处理步骤:
[0008] 第一步:构建应用拓扑结构;
[0009] 用户根据Storm实时数据流的处理逻辑,构建了应用拓扑结构(T={ti,t2,… ,ta},ta= {S,B,G});所述任意一个拓扑结构%中包括有数据源组(S= {Sl,s2,…,sc})、处 理组件(B={Vh,…,bd}),以及组件间的数据分发模式(G= {gl,g2,…,ge})。
[0010] 第二步:设置资源预算和花费速率的初始值;
[0011] 用户为提交的任意一个拓扑结构ta设置初始网络带宽资源预算A岭於.和初始 网络带宽花费速率。
[0012] 第三步:设置期望运行时长;
[0013] 用户为提交的任意一个拓扑结构ta设置期望运行时长。
[0014] 第四步:获取元组发送速率和接收速率;
[0015] 在设置完成第二步和第三步后,在运行第一步的任意一个拓扑结构ta后,通过主 节点上的Thrift运行时状态查询接口,启动后台监控线程;实时获得各个计算节点上运行 数据源s。的元组发送速率划,和元组接收速率,以及资源花费速率广,然 后执行第五步。
[0016] 在本发明中,任意一个拓扑结构^在计算节点上运行完成所有的数据源S= {Sl,s2,…,s。},则将获得的元组发送速率集合记为= [腳 和元组接收速率集合记为
【主权项】
1. 一种基于Storm实时流计算框架的应用网络带宽动态优先级保障方法,其特征在于 有下列处理步骤: 第一步:构建应用拓扑结构; 用户根据Storm实时数据流的处理逻辑,构建了应用拓扑结构(T = It1, t2,…,ta},ta ={S,B,G});所述任意一个拓扑结构^中包括有数据源组(S= {s i,S2,…,s。})、处理组件 (B = Od1, b2,…,bd}),以及组件间的数据分发模式(G = {gp g2,…,gj); 第二步:设置资源预算和花费速率的初始值; 用户为提交的任意一个拓扑结构ta设置初始网络带宽资源预算S〃成^<_:y和初始网络 带宽花费速率心; 第三步:设置期望运行时长; 用户为提交的任意一个拓扑结构1设置期望运行时长&〃; 第四步:获取元组发送速率和接收速率; 在设置完成第二步和第三步后,在运行第一步的任意一个拓扑结构1后,通过主节点 上的T
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1