论文部分内容阅读
随着大数据与人工智能等相关技术的发展,传统的批量数据处理模式无法满足需求。数据量的高速增长驱动了大数据流式计算的发展,在流式计算场景下,具有代表性的流式计算框架有多种。Apache Storm可以很好地满足流式环境的特点,其低延迟、高吞吐、高容错等自身特性极大地拓宽了该平台的使用范围。考虑到Storm平台在任务调度方面仍然存在一定的优化空间,为了规避因默认的轮询调度机制带来的通信开销过大、负载不均衡等风险。针对这一类问题,国内外专家学者提出了许多任务调度优化策略,但其中大部分都是针对拓扑运行阶段的在线调度策略,会对拓扑运行过程产生一定的影响。本文选取大数据流式处理框架Apache Storm为研究对象,提出离线环境下考虑拓扑结构的任务调度优化方法(An Offline Task Scheduling Strategy Based on Topology Structure in Storm,TS~2-Storm)。首先根据拓扑的结构特点,建立拓扑逻辑图、拓扑任务分配图、CPU资源限制模型和通信开销最优模型。其次,提出了组件的度的概念,提出节点承载线程数量约束原则。然后结合Storm集群中节点异构性的特点,在离线环境下,将拓扑的部署分为进程的部署和线程的部署这两个过程。按照每个工作节点的剩余CPU资源的数量,对工作节点进行排序,构建出执行拓扑的使用节点集合,并在这些工作节点上配置可用槽。为消除节点内进程间通信开销,利用轮询调度策略,在这些节点上分配一个进程。在线程部署阶段,计算各个组件的度,在满足节点承载线程数量约束的原则上,将度大的组件中的线程尽可能地调度到同一个节点上,通过改善负载均衡状态,达到降低通信开销的目标。将本文提出的调度优化方法,和默认调度策略、离线调度策略进行对比实验。实验所得结果表明:TS~2-Storm策略相比较于Storm的默认调度策略和离线调度策略,在系统延迟时间方面具有不同程度的优化效果。此外,TS~2-Storm策略在CPU资源占用情况、节点间通信开销、负载均衡和吞吐量等方面,相比于Storm默认调度策略和离线调度策略的结果均有一定程度的改善。