论文部分内容阅读
随着网络应用的持续增加,以及相关业务的发展与延伸,产生并积累了大量的数据;与此同时,针对大数据的分布式计算框架不断出现并改进。根据应用场景,大数据的处理可以简单地分为两类:一类是以MapReduce为代表的静态批量数据处理方法,具有紧耦合、高吞吐率、高延迟的特性,适用于实时性要求不高但数据量较大的应用;另一类是以S4为代表的实时流式数据处理方法,这是一种针对数据流的实时分析框架,具有松耦合、低吞吐率、低延迟的特性,被广泛应用于实时响应的系统中。 然而,还有一类介于二者之间的应用,可称之为大数据环境下的实时流式数据处理,该类应用需要结合静态的历史数据,实时对数据流作出响应。针对这种应用,MapReduce虽然可以通过缓存数据流批量进行处理,但其响应时间较长,达不到实时性要求;现有的流式数据处理系统虽然可以对数据流实时响应,但其中间数据存储空间有限,无法存储海量的中间数据,具有很大的局限性。目前,对于大数据环境下的实时流式数据处理,缺少成熟的系统方法。 本文即针对这种应用场景提出StreamMapReduce计算系统,同时保证中间数据的海量存储与系统的实时性能,解决大数据环境下的实时流数据处理问题。论文的主要工作包括以下四个方面点:首先,提出StreamMapReduce的总体方案设计,StreamMapReduce是基于MapReduce计算模型开发计算系统,为了提高系统计算效率,对MapReduce编程模型进行改进,主要是通过管理中间数据的分发、存储、读取过程,来并行化map过程与洗牌过程;其次,研究数据本地化机制,通过数据划分促使各节点独立无冗余运算;再次,研究数据分发流水线机制,以保证数据的发送与接收能够高效地进行;最后,重点研究内存的管理具体方法,主要是建立适用于key/value存储的B+树结构,同时为了扩展存储空间,建立内外存交换机制,之后,实现该树的查找、插入与遍历算法。 综上,本论文提出了一套大数据环境下流式数据处理的技术方案,研究并解决了其中存在的难点问题,有针对性地设计了数据本地化机制、数据分发流水线机制及内存管理系统,最后在此基础上开发出StreamMapReduce系统。通过最后的系统测试与对比实验可以看出,StreamMapReduce具有良好的存储性能与响应速度,能够很好地完成大数据环境下流式数据分析任务。