hadoop平台下的作业调度算法
摘 要 近年来, 互联网行业高速发展,尤其是移动互联网的兴起,产生了大量的数据,而如何在这些海量数据当中,获取有价值的信息,正是大数据行业的一个核心。Hadoop正是解决大数据存储与计算的一个典型框架,由Java语言编写,目前在学术和商业都得到了广泛的应用,并且发展迅速。本文在广泛调研的基础之上,介绍了Hadoop平台和其关键技术。重点分析了Hadoop平台下的MapReduce计算模型和三种作业调度算法:FIFO调度器、公平调度器(Fair Scheduler)和容量调度器(Capacity Scheduler)。接着从之前的分析总结出目前Hadoop平台之上存在的两种问题参数难以设置和调度算法难以选择,并提出一种改进的调度算法以解决这些问题。最后自己搭建一套Hadoop集群环境,并通过实验应用的方式来对自己改进后的算法的性能进行验证,实验结果表明自己改进后的算法在性能方面有显著提升。
目 录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 论文的背景和意义 1
1.2 论文的研究内容 1
1.3 论文的组织结构 2
第2章 HADOOP平台分析 3
2.1 Hadoop生态链 3
2.2 HDFS概述 4
2.2.1 HDFS的架构 5
2.3 MapReduce概述 6
2.3.1 MapReduce编程模型 6
2.3.2 MapReduce执行流程 7
第3章 作业调度算法的现状分析 9
3.1 作业调度概述 9
3.1.1 作业调度流程 9
3.1.2 插件式调度框架 10
3.2 FIFO调度器 11
3.2.1基本调度策略 11
3.2.2 具体实现 12
3.3 公平调度器 13
3.3.1产生背景 13
3.3.2主要功能 14
3.3.3基本调度策略 15
3.4 容量调度器 16
3.4.1 产生背景 16
3.4.2 主要功能 16
*好棒文|www.hbsrm.com +Q: 3_5_1_9_1_6_0_7_2
3.4.3基本调度策略 17
3.5 三种调度器对比 18
第4章 基于数据抽样分析的自动调优调度算法 20
4.1 方案的产生背景 20
4.2 算法设计 21
4.3 算法实现 23
第5章 实验与应用 25
5.1 实验平台搭建 25
5.1.1 实验环境说明 25
5.1.2 分布式Hadoop集群环境的搭建步骤 26
5.1.3 实验数据的选取 26
5.2 实验应用的内容 26
5.2.1验证不同的参数对Hadoop作业性能的影响 26
5.2.2 同一作业类型在不同数据规模不同调度算法下的执行效率 28
5.2.3 验证改进后的调度算法的性能 30
第6章总结与展望 32
6.1 课题总结 32
6.2 研究展望 32
致谢
参考文献
第1章 绪论
1.1 论文的背景和意义
随着互联网行业的高速发展,人与人之间的交流形式变得更加丰富多样,人们也越来越依赖于互联网所提供的信息交流途径,比如社交网站,及时通信软件,微博等。这些交流方式导致了目前数据爆炸式的增长,而在对这些海量数据进行存储和计算时所面临的问题,导致了一个新的计算模式云计算的诞生[1]。
云计算是将计算、网络、虚拟化等技术相结合的产物,它解决了海量数据的存储和计算等关键问题。在云计算的服务中,应用服务和相关数据都被隐藏在了云的后端,用户不知道也不用关心数据传输的过程,只要根据自己的需求付费给服务提供商,利用PC机和网络来获取相应的云服务[2]。
云计算的发展异常迅猛,云计算的领军力量Google利用自己的云平台来处理每日产生的大量数据。其他的商业巨头如:Microsoft、Intel、Amazon和Yahoo等大公司都推出了自己的云平台,并将其作为未来发展的一大战略[3]。Hadoop是由Apache软件基金会提出的是对Google云计算平台的开源实现,现在已经得到了广泛的使用。
目前各大公司在使用Hadoop平台时,都会对Hadoop做二次开发,而其中最重要的一项内容就是开发自己的调度算法,因为调度算法直接影响到整个集群的吞吐量和资源的利用率,与工作效率和用户体验有着很大的联系。因此研究Hadoop调度算法并改正其缺陷与不足这项工作有着非常重要的意义。
1.2 论文的研究内容
本文首先对Hadoop平台之上的两大核心组件HDFS和MapReduce进行介绍分析,然后对目前三种常用的调度器FIFO调度器、公平调度器和容量调度器进行了详细分析,包括算法的产生背景、算法思想和具体的实现以及存在不足,并且对这三种算法的优缺点进行对比总结。接着针对目前Hadoop平台上面存在的两大问题:参数难以设置和调度算法难以选择,提出了一种自动调优的调度算法,并且对该算法的思想和实现进行了详细介绍。最后通过搭建实验平台来对自己提出的自动调优算法的性能进行实验证明,并且在实际项目中来应用自己的算法 。
1.3 论文的组织结构
本论文一共分为七章,各章具体安排如下:
第一章是绪论。介绍了云计算的相关背景和论文研究内容。
第二章是Hadoop平台介绍。介绍了Hadoop的相关历史信息,和Hadoop生态系统中的其他技术框架,并且重点对Hadoop的两大核心组件HDFS和MapReduce进行了详细介绍。
第三章是作业调度算法的分析。这是本次论文的核心内容,对Hadoop平台中目前最常用的三种调度算法进行了深入分析,并对比这三种算法的优缺点。
第四章是极少自己提出的基于数据抽样分析的自动调优调度算法。这是在前两章分析的基础之上提出的一个调度算法,用来解决Hadoop平台的两个问题:参数难以设置和调度算法难以选择。
第五章是实验与应用。对第四章提出的改进的调度算法进行实验,来验证改进之后的算法的性能提升,并在实际项目中进行应用。
第六章是总结与展望。对本次课题进行总结和对未来的研究工作做一个简单的描述。
第2章 Hadoop平台介绍
Hadoop起源于Google的集群系统,Google使用廉价的LinuxPC机来组成集群,搭建其数据中心,并用其运行各种应用。Google集群系统的核心组件有两个:第一个就是GFS(Google FileSystem),是一个分布式文件系统,隐藏了底层复杂的实现细节,对上层应用程序提供一套统一的文件系统API接口;另一个是MapReduce计算模型, Map是把Input输入分解成中间的Key/Value键值对,Reduce把Map生成的Key/Value键值对合成最终输出Output。上层应用程序只需要实现这两个函数,底层系统会自动将计算过程发布到各个机器上去执行,其最终运行结果会自动存储在GFS上[4]。
目 录
摘要 I
ABSTRACT II
第1章 绪论 1
1.1 论文的背景和意义 1
1.2 论文的研究内容 1
1.3 论文的组织结构 2
第2章 HADOOP平台分析 3
2.1 Hadoop生态链 3
2.2 HDFS概述 4
2.2.1 HDFS的架构 5
2.3 MapReduce概述 6
2.3.1 MapReduce编程模型 6
2.3.2 MapReduce执行流程 7
第3章 作业调度算法的现状分析 9
3.1 作业调度概述 9
3.1.1 作业调度流程 9
3.1.2 插件式调度框架 10
3.2 FIFO调度器 11
3.2.1基本调度策略 11
3.2.2 具体实现 12
3.3 公平调度器 13
3.3.1产生背景 13
3.3.2主要功能 14
3.3.3基本调度策略 15
3.4 容量调度器 16
3.4.1 产生背景 16
3.4.2 主要功能 16
*好棒文|www.hbsrm.com +Q: 3_5_1_9_1_6_0_7_2
3.4.3基本调度策略 17
3.5 三种调度器对比 18
第4章 基于数据抽样分析的自动调优调度算法 20
4.1 方案的产生背景 20
4.2 算法设计 21
4.3 算法实现 23
第5章 实验与应用 25
5.1 实验平台搭建 25
5.1.1 实验环境说明 25
5.1.2 分布式Hadoop集群环境的搭建步骤 26
5.1.3 实验数据的选取 26
5.2 实验应用的内容 26
5.2.1验证不同的参数对Hadoop作业性能的影响 26
5.2.2 同一作业类型在不同数据规模不同调度算法下的执行效率 28
5.2.3 验证改进后的调度算法的性能 30
第6章总结与展望 32
6.1 课题总结 32
6.2 研究展望 32
致谢
参考文献
第1章 绪论
1.1 论文的背景和意义
随着互联网行业的高速发展,人与人之间的交流形式变得更加丰富多样,人们也越来越依赖于互联网所提供的信息交流途径,比如社交网站,及时通信软件,微博等。这些交流方式导致了目前数据爆炸式的增长,而在对这些海量数据进行存储和计算时所面临的问题,导致了一个新的计算模式云计算的诞生[1]。
云计算是将计算、网络、虚拟化等技术相结合的产物,它解决了海量数据的存储和计算等关键问题。在云计算的服务中,应用服务和相关数据都被隐藏在了云的后端,用户不知道也不用关心数据传输的过程,只要根据自己的需求付费给服务提供商,利用PC机和网络来获取相应的云服务[2]。
云计算的发展异常迅猛,云计算的领军力量Google利用自己的云平台来处理每日产生的大量数据。其他的商业巨头如:Microsoft、Intel、Amazon和Yahoo等大公司都推出了自己的云平台,并将其作为未来发展的一大战略[3]。Hadoop是由Apache软件基金会提出的是对Google云计算平台的开源实现,现在已经得到了广泛的使用。
目前各大公司在使用Hadoop平台时,都会对Hadoop做二次开发,而其中最重要的一项内容就是开发自己的调度算法,因为调度算法直接影响到整个集群的吞吐量和资源的利用率,与工作效率和用户体验有着很大的联系。因此研究Hadoop调度算法并改正其缺陷与不足这项工作有着非常重要的意义。
1.2 论文的研究内容
本文首先对Hadoop平台之上的两大核心组件HDFS和MapReduce进行介绍分析,然后对目前三种常用的调度器FIFO调度器、公平调度器和容量调度器进行了详细分析,包括算法的产生背景、算法思想和具体的实现以及存在不足,并且对这三种算法的优缺点进行对比总结。接着针对目前Hadoop平台上面存在的两大问题:参数难以设置和调度算法难以选择,提出了一种自动调优的调度算法,并且对该算法的思想和实现进行了详细介绍。最后通过搭建实验平台来对自己提出的自动调优算法的性能进行实验证明,并且在实际项目中来应用自己的算法 。
1.3 论文的组织结构
本论文一共分为七章,各章具体安排如下:
第一章是绪论。介绍了云计算的相关背景和论文研究内容。
第二章是Hadoop平台介绍。介绍了Hadoop的相关历史信息,和Hadoop生态系统中的其他技术框架,并且重点对Hadoop的两大核心组件HDFS和MapReduce进行了详细介绍。
第三章是作业调度算法的分析。这是本次论文的核心内容,对Hadoop平台中目前最常用的三种调度算法进行了深入分析,并对比这三种算法的优缺点。
第四章是极少自己提出的基于数据抽样分析的自动调优调度算法。这是在前两章分析的基础之上提出的一个调度算法,用来解决Hadoop平台的两个问题:参数难以设置和调度算法难以选择。
第五章是实验与应用。对第四章提出的改进的调度算法进行实验,来验证改进之后的算法的性能提升,并在实际项目中进行应用。
第六章是总结与展望。对本次课题进行总结和对未来的研究工作做一个简单的描述。
第2章 Hadoop平台介绍
Hadoop起源于Google的集群系统,Google使用廉价的LinuxPC机来组成集群,搭建其数据中心,并用其运行各种应用。Google集群系统的核心组件有两个:第一个就是GFS(Google FileSystem),是一个分布式文件系统,隐藏了底层复杂的实现细节,对上层应用程序提供一套统一的文件系统API接口;另一个是MapReduce计算模型, Map是把Input输入分解成中间的Key/Value键值对,Reduce把Map生成的Key/Value键值对合成最终输出Output。上层应用程序只需要实现这两个函数,底层系统会自动将计算过程发布到各个机器上去执行,其最终运行结果会自动存储在GFS上[4]。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/dzxx/dzkxyjs/1736.html