论文部分内容阅读
随着计算机网络的发展,应用的不断深入,云计算被提出,并成为当今计算机领域最热的研究领域之一。Hadoop是一种云计算框架,适用于大规模数据集计算。在Hadoop中,用户提交的作业被分割为若干个相互独立的任务,然后由调度器调度至计算节点上并行执行。调度问题一直是并行计算领域中最重要的问题之一,Hadoop应用环境日渐复杂,传统的调度算法也受到挑战。公平调度算法由于解决了多用户环境下共享集群资源的问题,目前被Hadoop所采用。然而,在基于Hadoop框架的云计算中,当计算资源和数据资源在不同的物理位置时将产生数据迁移问题,增加网络I/O,产生所谓的“数据化本地化”问题。为解决该问题,研究者提出了延迟调度算法,允许就绪任务等待一段时间,直到集群中某一具有该任务所需要数据资源的节点向调度器索取任务,才将任务调度到该节点执行。本文深入研究了延迟调度算法,在分析延迟调度算法不足之处的基础上,针对其中存在的问题,提出两个改进方案,并以实验验证了所改进的算法。具体工作如下:1)研究如何合理设置延迟时间间隔。在实际应用中,延迟时间间隔往往是一个经验值,设置过长或过短都可能影响系统性能与作业执行效率。本文在分析了作业待处理数据在文件系统中的分布情况如何影响作业本地化调度的基础上,引入参数用户期望本地化概率,推导出等待时间的计算公式。该公式区分不同的作业,设置不同的等待时间。据此,用户可以根据期望本地化概率这一参数来调控作业预期的本地化程度。对上述方法,进行实验验证,实验结果表明:通过公式计算出的延迟时间能够使得作业达到用户预期的本地化水平。2)研究如何合理设置目标计算节点。延迟调度算法以本地化调度为目标,则数据的位置决定了任务的目标计算节点;如果某作业的待处理数据集中在某个节点上,将出现多个任务在同一节点上运行,导致作业并行化程度很差。本文在保留延迟调度的基础上,提出延迟-容量调度算法,允许部分任务选择非本地化节点作为原延迟调度算法中任务的目标计算节点,提高作业的响应时间与增加作业的并行程度。对此算法,本文修改Hadoop源代码重新编译,并搭建测试环境进行了实验,实验对比分析结果表明:改进后的算法在执行效率和并行效果优于原延迟调度算法。3)在电网监控系统中,应用上述调度算法进行公式并行计算。首先分析电网监控系统中公式计算的特点,然后阐述如何采用MapReduce编程模型实现公式计算的并行处理,以及如何在其过程中运用论文所提出的两种调度算法进行任务调度。最后,对Hadoop集群环境和传统的集群环境电网监控系统公式计算结果进行了对比分析,结果表明,本文所采用的方法在完成时间和负载均衡上都更优。