论文部分内容阅读
互联网的发展正逐步改变着各行各业的发展模式,而随着物联网的介入,现实生活中的行为活动也被IT行业刻画成了动态数据流,促使数据处理技术有了颠覆性的发展。大数据、云计算等词汇也迅速的开始在各行各业普及,传统行业也不再满足于非实时的、静态数据的管理,也对信息处理技术提出更高的要求,开始追求实时的、持续产生的动态数据流的掌控,以提高在业内的竞争实力。例如,智慧城市、智能家居、智能交通和智能汽车等新兴产业,都是IT服务和传统行业相结合的产物,而这一类智慧产业得益于物联网的广泛应用和云计算技术等信息处理技术的快速发展。面对物联网中的各类传感器获取的流式数据,实时计算的处理模式起到了关键的作用,而流式数据的实时性、持续性和无限增长等特点,决定了依靠传统的数据处理技术已经无法满足流式数据的管理需求。目前,国内外的流数据处理技术还在不断的快速发展,一些相对成熟的流式计算框架以及实时计算平台还需要进一步完善。在这样的需求背景下,本文也对目前相对前沿的流数据处理技术进行了学习和研究,以本人所在的研究中心的“交通数据流实时计算平台”为依托,在掌握了Twitter公司开源的Apache Storm计算框架技术后,把分布式消息系统Kafka和Mongodb(一种文档型NoSql数据库)集成在一起,实现了一套流数据实时处理系统,还对Storm提供的Web监控进行扩充,满足个性化的监控需求,可查看某一台物理机上运行了哪些计算任务。在此基础之上,通过分析本人所在的研究中心现有的“交通数据流实时计算平台”存在的弊端,对计算性能、计算资源分配方面进行了优化。主要是在Storm为基础的实时计算平台上,实现了一套自定义的任务调度机制,针对不同的计算任务,分配特定的计算资源,并提高计算性能。具体做法是在Storm提供的默认调度器之上,实现了一个称之为LightScheduler的调度器,改变了默认调度器顺序分配计算资源的策略,对计算资源进行逻辑层面的划分。根据一个计算任务的实际需求,将其分配给指定的物理计算节点,无特殊需求的计算任务采用Storm默认的调度策略,把所有无特殊需求的计算资源顺序分配到Storm计算集群的物理计算节点上,但是已经被LightScheduler分配掉的计算资源,不会再被其他计算任务抢占,并通过减少网络延迟的方式提高计算任务的计算性能。简单总结本文的研究工作和贡献主要有以下三点:1)设计并实现了一套流数据实时处理系统,是对原有的“交通数据流实时计算平台”的重新实现,改进了原计算平台的不足(无法满足异构数据的存储、无法扩展消息队列、资源只能顺序分配)。2)根据小型计算集群的特点,实现了一套针对轻量级计算任务的调度算法,达到提高计算性能并且合理分配计算资源的效果。3)在Storm提供的Web监控功能的基础上,扩充了以物理计算节点为单位监控任务的功能,还可通过页面以可视化的方式提交计算任务。实验表明,在承担了多个计算任务的计算平台上,通过本文实现的任务调度算法,可以达到按需合理分配计算资源的效果,而且被LightScheduler调度的计算任务在性能方面提高了约10%左右。