论文部分内容阅读
随着互联网的飞速发展及企业信息化水平的提高,数据的产生量和积累量呈指数增长,如何利用好、管理好海量数据,已成为影响企业决策,驱动价值增长的重要环节。MapReduce模型作为大规模集群并行处理框架,已成为海量数据处理的重要工具。传统数据仓库无法在可接受时间内处理TB级数据,使得基于MapReduce的数据仓库工具Hive应用越来越广泛。由于Hive将查询语句转化为MapReduce工作流,而MapReduce工作流串行作业间需将中间结果写回HDFS供下个作业读取,产生大量I/O和作业启动的时间开销,降低了数据处理效率,且相似查询之间无法共享查询结果,浪费了计算资源。针对该问题,本文对如何重用MapReduce计算结果的方法进行了研究。1.文章介绍了研究背景和研究现状,阐述了海量数据背景下重用计算结果的重要性,并对基于MapReduce的现有研究进行了分析,总结了相关工作的特点和不足;介绍了HDFS的架构和运行原理,分析了MapReduce模型的执行流程,介绍了Hive的优势及HiveQL的语法规则。2.在此基础上,文章介绍了Hive生成抽象语法树及依赖关系的过程,分析连接过程和原理,对基于Hive的计算结果重用的可行性进行了探讨。3.文章详细介绍了重用策略的实现。定义了连接体、连接图、连接子体和重用连接图等,用于描述计算结果的数据结构,并提出抽取计算结果特征的算法。设计实现了计算结果匹配算法,提出单连接体和多连接体重用策略。当有多个计算结果可用时,根据作业数量和所有数据源的记录数之积生成最佳重用方案。对策略的时间复杂度和空间复杂度进行了详细分析。为了提高计算结果的重用概率,提出多键选择、延迟算数运算和语义理解三种方法,并通过实验对其代价进行了分析。介绍了基于作业数量、作业执行时间、重用次数和满足最近查询等需求的结算结果管理方法。4.文章通过实验对文章所提出的策略进行了详实的验证。采用两种基准测试数据集分别对单连接体和多连接体重用策略进行了分析,针对策略可能对初次查询效率产生的影响进行实验验证。通过一系列的对比分析,验证了本文所提出的策略不仅能有效提高计算效率,而且对初次查询的效率影响较小。