论文部分内容阅读
MapReduce作为大数据处理最重要的计算模型之一,由于其易于编程、具有良好的扩展性和高容错性的优点,已被广泛应用于各个领域,如信息技术、数据挖掘、人工智能、数学计算等。MapReduce应用的网络传输阶段需要占用云数据中心大量的网络带宽,这些数据传输产生了大量的网络负载,不仅会造成网络拥塞,还会给应用自身的性能带来损害。如何使不同的应用在保证自身服务质量的前提下共享网络资源,避免带宽竞争和网络拥塞,降低作业完成时间,是云数据中心亟待解决的问题。现有的针对面向MapReduce任务的云数据中心网络资源优化研究存在以下问题:在网络层,缺少有效的流量识别机制,忽略了应用和数据流自身的属性和对网络的特殊需求;此外,当前的流调度策略没有考虑coflow之间的依赖关系,这严重降低了流调度对降低作业完成时间的有效性。在应用层,现有的任务放置和调度方法无法针对实时的网络状态和节点容量做出合理的优化。因此,本文自底向上地从网络层和应用层解决面向MapReduce任务的云数据中心网络资源的共享问题。主要工作如下:(1)实现了一种基于OpenFlow协议的流标记和识别机制,通过网络过滤器更改Ipv4数据包头的Tos字段来区分标记不同应用的数据流。(2)研究了在任务截止时间约束条件下的相互依赖的coflow调度问题,构造了一个最小化作业平均完成时间的优化问题,并相应地提出了两层调度算法。通过优先满足瓶颈时间段和瓶颈链路的带宽分配实现在作业层面的调度;采用优先级调度和加权平均调度算法来保证coflow之间不同的依赖性,实现作业内部coflow的调度。(3)综合考虑了传输数据量、实时带宽容量、传输距离和节点计算资源容量对任务完成时间的影响,进一步提出了通过放置Reduce任务来减少Shuffle阶段传输代价的优化模型。模拟实验结果表明,本文提出的两层调度算法比传统的最短作业优先方法减少了约18%的作业平均完成时间,在有截止时间限制的条件下,提升作业完成率21%。最小传输代价任务放置策略相比平均放置算法和本地化放置算法实现了更加合理的任务放置比例,达到了对面向MapReduce任务的云数据中心网络资源的优化目的。