论文部分内容阅读
近年来,在线广告、实时统计分析等时效性敏感的数据处理场景越来越多。数据流处理技术因为其高时效性成为新的研究热点。数据流处理技术能提供实时、可靠、易用和可伸缩的计算服务,数据可以通过该服务在时效时间内完成计算。同时,由于对时效的敏感性,数据流处理系统中及时的负载预测和高效的任务调度算法都至关重要。国内外学者在负载预测和任务调度方面的研究已经有了众多成果,但大部分学者未针对数据流和数据流处理系统的特点进行研究。基于线性回归等算法的负载预测,已不能很好的反映数据流处理系统中的负载状况;对于任务调度,针对单一资源评价指标的调度算法已经无法满足数据流处理系统中实时性和完全调度的要求。因此,本文在对现有研究成果分析、学习的基础上,针对数据流处理系统的特点,提出了基于SOM聚类的负载预测算法和流处理调度优化算法。首先,基于SOM聚类的负载预测算法能根据已知类别中的负载信息进行预测:利用SOM人工神经网络模拟数据源和计算拓扑结构对流处理负载的影响,将相似计算模式的负载聚类;针对数据流和拓扑结构多变的特点,提出SOM网络动态添加神经元策略;为了提高算法的实时性,提出了权值向量初始化策略、SOM命中预测机制和SOM状态机。实验结果表明,本文提出的算法能够在流处理负载预测中取得较好的效果。其次,流处理调度优化算法分析了数据流处理中拓扑调度问题的特殊性。将调度问题分为任务选择和节点选择:在初始阶段,综合考虑CPU、内存和通信成本,选择最优节点;在动态调整阶段,根据实际运行中的通信情况进行调度调整。实验结果表明,本文提出的流处理调度优化算法在负载均衡和减少通信时延方面都有较好的效果。最后,本文设计了一个基于Storm的数据流处理平台,对调度子系统和订阅发布子系统等关键模块进行了详细的介绍,并将本文提出的基于SOM聚类的负载预测算法和流处理调度优化算法嵌入在系统模块中。实验结果表明,本文提出的算法在流处理系统中具有有效性和可行性。