论文部分内容阅读
全世界已经进入到一个数据快速增长的时代。当前大数据方向的研究可以分为四类:离线计算、实时计算、流计算以及统一资源管理平台的研究。每种计算框架都仅仅适用于特定的领域,一旦需求范围超过自己擅长的领域,这些框架就难以满足要求了。例如,MapReduce善于进行批处理操作,任务吞吐量比较高,但是实时性不好,往往计算任务需要耗费几个小时甚至是几天的时间。同样地,流计算框架虽然能够快速响应用户事件,但是任务吞吐量又不够高。针对这些问题,本文提出的解决方案是将多框架融合到一个系统中,利用统一资源管理平台实现多框架的集成,通过统一查询接口对外提供服务。本文研究的内容就是在同一个系统中集成Hadoop和Storm两种不同的计算框架来提升整体的处理效率,具体方法就是实时数据和小规模数据通过Storm进行处理以求快速响应,而大规模历史数据使用Hadoop进行计算,增大系统吞吐量。本文对现有的混合型系统进行了深入的调研,大多数系统是在语言层面进行融合,将用户的查询语句转换为每个框架的实际执行任务。这些系统大多立足于屏蔽底层的实现细节,为用户提供统一的查询接口,方便熟悉SQL语言的数据分析人员使用。与这些系统相比,本文设计的架构具有两个新特性:1.设计框架自动选择算法,可以根据任务的特点选择合适的框架来执行该任务;2.可以控制Storm框架的数据来源,特别是为Storm设置了缓存表,能够一定程度上提升执行效率。本文原型系统的实现涵盖了语言处理层、资源调度层以及任务执行层三个方面,其中框架选择算法是在语言处理层中实现的。从对比测试的结果来看,数据量较小时查询操作执行时间与SummingBird on Storm持平,比SummingBird on Hadoop快20%-40%。数据量较大时混合系统数据吞吐量与SummingBird on Hadoop相当,比SummingBird on Storm多40%。本文设计的新型多框架混合系统架构有如下一些优势:整合多种计算框架,应用场景广泛;提供统一的查询语言,为用户屏蔽底层实现细节,便于用户使用;根据任务成本自动为任务匹配合适的计算框架,让混合系统变得更智能。