论文部分内容阅读
随着互联网的发展,大规模的数据在短时间内持续产生,数据的格式和类型也多样化,这些特征使得传统的数据处理系统难以有效地处理大规模的实时流数据。如何快速地处理大规模流数据是计算系统面对的新挑战。针对大规模的实时流数据,本文以分布式流数据处理系统作为处理平台,通过集群架构对流数据进行分布式处理,提供实时分析与决策能力。我们对实时流数据分析展开了三个工作:(1)提出了一种对流数据进行实时在线聚合的方法,用户可以实时地得到最新的处理结果和统计分析;(2)提出了一种对流数据进行长期预测的方法,根据数据特征实时地预测数据未来的趋势;(3)针对智能交通应用,通过分布式流数据处理给司机进行实时导航,并根据路况信息实时更新导航路线。具体内容如下:1.在线聚合扩展了传统数据查询的批处理模型,它可以持续性地更新聚合结果,并给用户提供当前结果的统计分析。传统分布式架构(如Map Reduce)在支持在线聚合方面存在一些性能问题,数据在处理过程中访问硬盘I/O成本较大,无法快速地提供聚合结果和统计分析;随机采样是在线聚合的重要环节,但是在异构流数据中难以实现随机采样。针对在线聚合在分布式系统中的性能问题,提出了一个分布式流数据的在线聚合方法。该方法中采用一种新的分布式随机采样算法,解决了异构数据流的难以采样问题;在处理复杂任务时,采用Actor model简化任务,通过异步机制进行消息传递,设计了在内存中快速地处理接收到的流数据和增量处理策略;进一步我们提出一个动态拓扑结构来优化多查询处理,这个拓扑结构可以将每个查询分解成多个独立的小任务,任务与任务之间可以通过发送与接收消息进行通信,减少了查询之间的重叠操作。通过公开的基准数据TPC-H进行实验,表明该方法能够较准确的结果快速地反馈给用户,运行的速度与效果比Map Reduce Online好。2.在实时流数据中长期预测是一个困难而重要的问题。在某些应急系统中,长期预测将比短期预测更加有用,长期预测可以提供更多的时间进行准备和应对异常事件,但是传统的方法在对长期预测方面不够有效。提出一种在实时流数据上长期预测的方法,该方法能够从历史数据中找到相似模式,并根据找到的模式对将来的数据进行预测;并通过机器学习算法Adaboost算法解决了模式长度难以选择等问题;最后为了提高算法的效率,我们通过分布式流数据处理进行模式匹配与预测,并把预测算法部署到分布式流数据系统S4中,在实际部署过程中采用多种优化策略,如分区策略,匹配方式优化等提高系统效率,通过实验证明分布式计算能够快速的进行模式匹配与预测,支持大规模的在线模式匹配与长期预测。3.如何快速地给司机提供实时的最短路径是当前交通系统遇到的一个挑战的问题。现有的查询最短路径方法中,一种是为最短路径建立一个索引系统,但是这种方法需要很多预处理成本,另外一种是使用分布式图处理系统,如Pregel,但是这些系统在处理过程中需要大量的同步成本。由于路况状态实时更新,这两种方法在支持实时最短路径方面性能较低。我们建立一个基于分布式流数据处理实现实时导航系统,采用异步消息机制在动态图中寻找最短路径查询。当路况发生变化时,它能够快速地检测到受影响的最短路径,并对其进行更新调整。在整个导航过程中,受影响的路径能够快速更新,并调整到最优路径。实验结果表明我们的系统CANDS在查询最短路径方面比现有的开源系统GPS快两个数量级,另外CANDS在路况发生更新时能够快速的进行路径检测与更新调整。