论文部分内容阅读
云计算技术的快速发展使得云计算平台成为支持IaaS的基础性设施,为用户提供大规模的虚拟化资源。分布式计算框架如MapReduce和云计算技术相结合使得对海量数据进行挖掘与分析成为可能,直接促进了大数据时代的到来。本文基于典型的分布式云计算平台深入研究了虚拟机集群的版本控制问题,同时围绕MapReduce分布式计算框架下的作业实时进度估计和面向作业时限的任务调度两个问题开展了研究。本文主要工作具体如下:针对已有方法在处理版本控制问题时,由于需要进行不同程度的版本数据传输和差异数据计算,导致耗时长和存储端负载压力大等问题,我们提出了一种新颖的扁平化版本控制方法。该方法在本地增量生成版本,在版本恢复时使用缓存树结构按需传输版本数据。实验显示我们的方法能有效地加速大规模虚拟机集群的版本控制过程,同时将负载压力分散在各节点,避免了性能瓶颈。针对已有方法在对MapReduce作业进度进行估计时,由于采取粗粒度的估算方法,或是使用静态采样的方法而未考虑作业执行期间的状态动态变化,导致估计不全面、精度低和实时性不好的问题,我们提出了一种作业实时进度的迭代估计方法。该方法为MapReduce作业建立三阶段模型(Map、非重叠Shuffle和Reduce阶段),并在作业运行期间,基于作业历史数据和运行状态信息来迭代地计算各阶段的持续时间,以准确地估计出实时的作业完成时间,并最终将其转换为作业实时进度。实验结果表明该方法在反映作业进度实时性变化方面性能提升显著,同时也有效地提升了作业实时进度的估计精度。针对已有方法在为MapReduce作业提供满足时限的功能时,出现的无法在时限前完成作业和无法在时限内处理最大数据量的问题,我们提出了一种满足MapReduce作业时限的任务调度方法。该方法在调度Map任务时,使用一种面向作业时限的迭代-逼近的任务调度算法以判断是继续还是终止Map阶段。终止Map阶段后,作业剩余未完成部分继续执行,此时该方法使用一种修正算法以进一步确保能在时限前完成作业,同时校正处理的数据量。实验显示该方法不仅能有效满足作业时限,还能在时限设置过低或是资源分配不足的情况下处理几乎最大的数据量。