论文部分内容阅读
大数据时代的来临使得云计算成为如今最为炙手可热的IT技术。目前,云计算技术是IT企业的基石,无论是电脑互联网,还是智能手机、GPS等移动终端,其发展趋势都是与云计算相结合。MapReduce的出现将云计算技术的发展带入一个新的阶段,对学术界和产业界都产生了深远的影响。MapReduce是一个用于大规模数据处理的计算框架。数据本地化是MapReduce设计时所遵循的重要原则,也是MapReduce进行任务调度的重要目的。本文主要以数据本地化为目的研究MapReduce的调度策略,以提高系统的性能。针对MapReduce集群存在大量非本地任务的问题,本文对MapReduce的任务调度机制进行研究,介绍了MapReduce中非本地任务选择算法的局限性,并提出了一种基于节点负载的任务调度方法。本文通过对节点的负载情况进行评价,在作业执行的过程中根据节点负载变化情况进行任务调度,使节点间的负载趋于均衡。实验表明,该方法能够显著降低非本地任务的数量,从而降低数据的迁移量,提高系统的性能。针对MapReduce集群中非本地任务执行时间较长的问题,本文对MapReduce的任务执行流程进行研究,分析非本地任务降低系统效率的原因,并提出了一种基于重叠调度机制的数据预取技术。本文通过为非本地任务引入“预调度”状态,使任务执行的数据读取和数据处理两个阶段重叠执行,从而隐藏了数据远程访问开销。实验表明,本方法能够明显缩短非本地任务的执行时间,提高系统的资源利用率。针对在MapReduce无法利用数据副本进行任务调度的问题,本文对MapReduce的容错机制和作业初始化过程进行研究,利用HDFS的副本冗余机制,在作业初始化时为数据副本生成任务副本,并提出一种基于多副本的任务调度机制。本文对每个节点的执行进度进行描述,在进行任务副本调度时保证进度较快的节点能够得到更高的副本使用权,从而利用副本的放置达到较高的数据本地性。实验表明,本方法在降低非本地任务数量,提高任务执行速度等方面有着很好的效果。