论文部分内容阅读
随着互联网规模的日益增大,需要处理与存储的数据量也越来越多,云计算已经成为一种典型的解决方案。目前,云计算已经受到学术界与工业界的广泛关注,许多公司都拥有自己的云计算平台。其中,许多云平台是基于Hadoop开发的。Hadoop是一个运行于大型集群上,用于大数据存储与并行计算的开源分布式框架,应用程序开发者只需要根据相关的接口需求就可以实现分布式处理而不必关注底层细节。Hadoop平台的性能与其作业调度算法密切相关,合适的调度算法能够极大地提高对Hadoop平台的资源利用率和系统吞吐量。但是,现有的Hadoop作业调度算法存在一些不足之处,因此,对Hadoop平台的作业调度算法进行优化和改进具有十分重要的意义。本文对Hadoop平台的作业调度算法展开研究,主要工作如下:1、从分布式文件系统HDFS和并行编程框架MapReduce两个方面对Hadoop的整体架构进行了介绍。2、深入分析了Hadoop平台下的作业调度流程,重点介绍了现有的几种作业调度算法:FIFO调度算法、计算能力调度算法、公平份额调度算法,对它们的算法思想与主要优缺点进行了分析比较。3、针对Hadoop现有调度算法对本地性问题考虑不足的情况,通过引入数据预取技术,提出了一种改进的调度算法,该算法会在作业执行中为需要分配任务的节点预先读取任务,改善了节点任务执行的效率,从整体上提高了系统性能。4、针对Hadoop现有调度算法对慢任务识别不当的问题,通过引入K-means算法,提出了一种改进的调度算法,该算法吸取SAMR调度算法的优点,通过记录各个节点的历史阶段权重,以K-means为工具,划分历史数据为不同聚类,从而能够让节点有效地预测任务剩余执行时间,提高慢任务的识别率。5、为了验证算法的有效性,搭建了小型Hadoop实验集群,通过分析日志和记录任务执行的阶段权重等方面对两种改进的算法进行了分析比较,实验结果验证了改进算法的可行性和有效性。