论文部分内容阅读
近年来,人们见证了数据的爆炸式增长,大数据已经开始深入到人们生活的方方面面。为了挖掘海量数据背后潜藏的价值,研究人员提出了 MapReduce并行处理框架,以应对传统数据库技术在处理大数据时的缺陷。MapReduce以“分而治之”的思想通过将海量数据分片到分布式集群中的节点中执行,从而大大提高数据处理的效率。它衍生出了 Hadoop、Spark等开源的大数据处理系统,受到了学术界和工业界的广泛关注。大数据处理系统离不开大量底层基础设施资源的支撑,然而初期昂贵的一次性经济投入以及后期繁杂的运维工作却阻碍了部分中小型企业运用大数据处理系统。因此随着云计算技术的不断发展,越来越多的企业和组织开始将大数据处理迁移到云中进行,充分利用云计算中按需自服务、弹性扩展的优势,缩短数据处理和分析的生命周期,提高生产效率。云计算为大数据处理带来了便利的同时,也给它带来了新的挑战和问题。本文在全面、深入地研究分析了现有的基于云计算的大数据处理系统的相关成果之后,以性能优化为目标,在云中大数据处理虚拟集群的调度、分布式存储系统的数据放置和大数据处理系统的任务调度三个方面展开了研究工作:首先,本文对云计算环境中大数据处理系统的网络性能需求进行分析和建模,充分考虑到云环境中网络资源的共享问题,刻画大数据虚拟集群竞争时可获得的最大网络性能。基于此模型,提出了面向网络性能优化的云中大数据处理虚拟集群调度问题。并针对此问题,设计了一个启发式的调度算法,目标是在满足时间要求的前提下,尽量寻找最优解,优化大数据处理系统在云中的网络性能。模拟实验表明该算法能够获得接近于最优的调度结果。然后,本文研究了云环境中Hadoop分布式存储系统的数据放置问题。针对云中虚拟机共存和异构性带来的数据可靠性下降和应用处理性能降低的问题,提出了一个基于位置感知的数据块放置算法。算法通过感知虚拟集群在真实物理拓扑中的相对位置进行数据块副本的放置,提高数据块的可靠性。同时通过前瞻性地预测各节点的处理负载,提高本地任务的比例,优化数据处理应用的性能。通过一系列的模拟实验和真实的集群实验分析,证明了该放置算法能够在满足实时性要求的前提下,加强数据的可靠性并且有效缩短I/O敏感型应用的处理时间。最后,本文研究了在云环境中运行大数据处理系统时的推测性任务调度问题。为了避免海量任务中的部分异常或者落后任务给整个应用作业带来的影响,大数据处理系统常常通过启动推测性的备份任务来缩短作业完成时间。推测性任务执行的关键在于对异常任务的精确检测和任务完成时间的预测,本文基于历史作业信息对当前的任务的执行时间进行辅助预测,并且提出基于全局速度和局部速度相结合的方法挑选异常任务,从而在精确检测落后任务的同时,避免异常任务的误判导致的资源竞争。实验结果表明该方法能够有效减少作业的完成时间。本文主要以性能优化为目标,充分考虑了云计算和大数据处理各自的特性和需求,对于大数据处理系统迁移到云中运行的相关问题进行了研究。首先本文提出了一个启发式算法寻求虚拟集群调度时的最优解。随后,论文提出了基于位置感知的数据块放置策略和基于历史信息的推测性任务执行方法,用以优化云中大数据处理系统的性能。我们希望论文的研究工作能够对云中大数据处理系统的设计提供有益的参考和帮助。