论文部分内容阅读
云计算是一种商业化计算模型,能够将超大规模计算和海量存储能力通过网络提供给用户,就像水、电和煤气一样,取用方便,费用低廉。如何将云计算的资源合理有效地分配给用户,减少作业执行时间和提高资源利用率,是调度算法需要研究和解决的问题。因此,对云计算调度算法进行研究具有非常重要的现实意义。本文对云计算调度算法的研究背景和研究现状进行分析,指出当前云计算调度算法存在的不足,并提出了相应的解决方法。 首先,对云计算调度算法的关键技术进行分析研究。本文对Hadoop系统及其关键技术进行分析,加深对HDFS和MapReduce工作原理和执行过程的理解。深入分析了调度算法和它实现的目标,比较了经典调度算法的性能,并改进了一种启发式表调度算法(Heuristic list scheduling,简称HLS)来提高Hadoop集群资源利用率和作业响应时间。 其次,通过对Hadoop系统的特点和不足进行分析,设计了一种基于任务预分配的表调度算法(List Scheduling based Task Preassigned,简称LSTP)来解决云计算资源分配问题。本文使用概率论知识对Hadoop日志信息进行分析,评估并获得每个节点执行速度和节点间通信速率。根据 DAG调度和 MapReduce任务分配模型,设计出LSTP算法调度模型并确定Map和Reduce任务的优先级。然后,改进一种最早开始时间搜索算法为每个任务找到最佳的工作节点并将该任务映射到该工作节点。为每个工作节点设计一个预分配任务槽来扩大系统的吞吐量和实现任务的优化调整,解决任务预分配时产生的分配不均或者“热点”问题,并对LSTP算法的时间复杂度进行分析。 最后,在实验室搭建异构Hadoop集群并在该集群上对LSTP算法进行了验证。分别在配置有FIFO、HLS和LSTP算法的异构Hadoop集群上运行经典的基准程序WordCount、Sort和TeraSort来对作业响应时间进行分析。实验验证了LSTP算法在响应时间和系统资源利用率上明显优于FIFO和HLS算法。