论文部分内容阅读
数据访问延时是影响系统性能的关键因素之一。在MapReduce环境中,由于输入数据远大于处理代码,不在数据节点执行的Map任务将会引起大量的远程数据访问延时;由于Map任务分布在成百上千甚至更多的节点上执行,且把输出结果存储在节点本地,Reduce任务要访问这些结果必须执行大量的远程I/O操作,而这些操作将引起大量的远程数据访问延时。
本文从分析Hadoop MapReduce环境中任务的调度和执行过程入手,发现MapReduce环境中的资源竞争、调度策略以及数据依赖关系是导致Map任务和Reduce任务引起远程数据访问延时的直接原因。针对任务中存在的数据访问问题,本文研究了改善Map任务和Reduce任务数据访问的预取技术和调度方法,并将研究成果应用于Hadoop MapReduce。
本文的主要工作和贡献如下:
1.Map任务输入数据预取技术研究:提出了最短距离优先的预取技术,这项技术可以在调度前预取任务的输入数据。为了提高利用预取技术隐藏远程数据访问延时的效率,还提出了基于截止时间的任务调度方法。实验结果表明,这项预取技术不仅能隐藏Map任务的远程数据访问延时,还能提高系统的性能。
2.Map任务调度方法研究:提出了结合将来请求信息,优先把任务保留给数据节点执行的调度策略。基于此策略,提出了适用于同构环境的基于将来请求节点的任务调度方法和适用于异构环境的开销敏感的任务调度方法。实验结果表明,这种调度策略不仅可以减少引起远程数据访问延时的任务数,还能降低网络负载。因此,此策略非常适合在网络负载较重的环境中使用。
3.Reduce任务数据预取技术和调度方法研究:提出了基于预调度的预取技术。这项技术将Reduce任务的调度过程分为预调度和正式调度。在预调度阶段,只为任务预取数据;只有进入正式调度阶段,才给任务分配执行所需的CPU和内存资源。因此,这项技术可以在隐藏Reduce任务远程数据访问延时的同时减少它和Map任务之间的资源竞争。实验结果表明,这项技术可以提高MapReduce的性能,缩短系统响应时间。