上海论文网是一家老字号论文网站,专业提供硕士毕业论文服务。

Hadoop平台下基于时间与负载均衡的任务调度优化之计算机分析

日期:2019-06-15 12:07 作者:上海论文网 编辑:vicky 点击次数:63
销售价格:0 论文编号:el2019061512072419013 论文字数:3941 所属栏目:计算机论文
论文地区: 论文语种:其他 论文用途:其他
TAG: 计算机论文   MapReduce   数据倾斜   小作业   

本文是一篇计算机论文,本文算法通过与 Hadoop 自带的公平调度算法和分位数分区算法的实验结果进行对比,表明了本文提出的算法不仅能提高小作业 Reduce 的执行效率,而且还能更好地实现负

本文是一篇计算机论文,本文通过对 MapReduce 执行过程以及其调度算法的研究,提出了一种基于时间与负载均衡的 Reduce 任务调度算法(task time and load balance,TTALB)。该算法在作业开始执行 Map 阶段的时候,采用合理的抽样方法对 Map 阶段产生的key 进行抽样,并根据 Map 阶段的用时等相关信息,对 Map 阶段的剩余完成时间进行预估,通过对 Map 阶段剩余完成时间的比较,对等待队列中的 Reduce 任务进行重排序,从而提高小作业的 Reduce 执行效率。另一方面,在抽样的基础上,得到 key 的频次分布,进而估计出数据分布情况,然后根据贪心算法把这些数据均分到 Reduce 节点上,从而解决数据倾斜的问题,实现负载均衡。

第 1 章 绪论

1.1 课题研究背景及意义
近年来,互联网一直都在迅速的发展着,网络对我们的生活、工作和学习越来越变得不可缺少。它使我们的工作更有效率,学习更加方便,生活也更有质量。在现今这个互联网高速发展的时代,基本上我们每天都要在在网络上都做许多的事情,比如在电商平台购买物品,在网站上进行学习或观看视频,收发电子邮件等。网络确实给我们的生活带来了许多方便的地方。比如在各个网站上的推荐系统,它会根据我们在网上的历史信息以及兴趣爱好等,给我们个性化的推荐商品、资源和服务等。现在可以上网的手段越来越多,不仅局限于电脑,还包括手机,pad,电视以及各种智能终端等等,但是我们在使用网络的过程可能会产生大量的数据,这些数据都是自动被储存下来的。而且这些数据随着时间的增加不会减少,也是一直在叠加的。这些数据里边不仅有一些文字方面数据,还有图形,视频,声音等,这些数据的存储和加工都是在网络中进行的。海量数据的存储与加工对计算机技术提出了更高的要求,在这种情况下,云计算应运而生,而计算机技术进入了大数据时代[1]。
云计算从提出到现在,依然备受关注。国内外许多企业都一直致力于云计算的发展和研究,比如亚马逊和微软等,他们先后加入对云计算研究的行列,这些对加快云计算的发展和应用具有重要的意义。云计算其实就是资源提供者将资源虚拟化后,在网络中作为一种服务提供给用户的计算模式,与此同时,用户不会去关心具体的基本设计还有设计的过程,他们只会根据自己需要什么去申请相应的云服务即可。云计算是大数据处理的一种解决途径。随着数据量的不断增加,要想保证服务的时间,就要提高服务器的性能。而提高单个服务器的性能成本与造价实在是太高。因此云计算所采用了分而治之的思想,利用现有的廉价的计算机搭建服务器集群,把数据划分成多个较小的板块,分别让集群对这些任务进行处理,处理之后在对这些各个小结果进行汇总,并根据用户的需求生成最终的结果。这样就不仅缩短了响应时间,也降低了研究成本。MapReduce 就是一个这样的计算框架。
...............................

1.2 国内外研究现状
1.2.1 小作业的研究现状
MapReduce 对作业进行安排的方法对集群这一性能影响是很大的。这种性能主要通过下面五个指标来衡量:首先就是在公平方面,也就只能是分配给用户资源的一个公平性还有合理性;其次就是在数据方面,看数据在对应的任务安排点上完成率的高低。然后就在调度的时间方面,根据花费的时间来判断具体的效果。最后就是在调度的算法方面看能不能满足用户的最低需求。但是这些性能又是相辅相成的,它们不可分割。提高一个性能可能会导致其他性能的下降,也就是鱼和熊掌不可兼得。所以一般情况下,我们对于这种算法,进行提升的目标就是指的提升某一项或者某几项性能,但是想要计算一个作业完成的平均时间,确实每种方法都要考虑到的,每种性能都要考虑到的。
前面的很多研究者为了让系统的性能更加完善,针对具体的作业算法进行了大量的研究,进行了大量数据的测试,最终一直在改进。其中很多部分都是针对 MapReduce 这种作业调度过程中的 Map 任务的优化和改进,但是对 Reduce研究就会少很多算法方面也会简单不少,所以存在一些不足,包括小作业还有“饥饿”(小作业执行效率不高)和系统资源利用率不高的问题,另一方面是数据倾斜的方面。关于 Reduce 任务来说,小作业在执行的时候可能会受到一定的干扰。因为大作业一直在占着资源而执行不了。 对于小作业的定义来说,之所以叫小做,也是因为他的执行时间是很短的,有可能几分钟,几十分钟就完成了。比如我们常用的淘宝中就会经常执行小作业,来完成每一个任务,因为浏览量和运行量比较大每天可能要运行上万个甚至数 10 万个小作业。所以一定要提高小作业的执行效率,才能够保证很多正常程序的运行。有学者对淘宝的云梯作业进行了深入的分析和了解,发现了小作业中的执行效率不够高也不够集中。所以提出了一些改进的算法,但是这些算法可能也会有一定的弊端,比如说没有考虑到饥饿问题。所以为了进一步完善该问题,Jian Tan 在该基础上,提出了进一步的加快任务的速度来进行进一步的完善,但是这种算法却没有考虑到任务完成的时间。还有学者在后边提出了在任务上尽快缩短剩余时间的一种改进算法,这种算法也是有弊端的,在一些情况下可能会导致系统的某些资源得不到合适的利用。所以对于算法和调度来说,有必要进行深入和专业的研究,研究出一套最适合的,最完整的算法。
..............................

第 2 章 Hadoop 相关技术

2.1 云计算技术
2.1.1 云计算概念
云计算最早的概念是在 06 年的一个搜索大会上被谷歌的首席执行官提出来的。这个名词当时提出来,引起了不小的轰动,社会各界迅速的引起广泛的关注,因为它不仅仅是一项计算技术,更是在互联网遍及时代一种新的商业模式。掌握了这种模式的较高水平,可能也就掌握了发展的核心和未来。所以这种模式得到了广泛的研究和学习,是很多传统技术共同发展的一个演化的产物。但是目前对于该计算定义没有明确的定义,有比较权威的解释,比如下面几点。
(1)Berkely 大学认为是:云计算其实是一种全新的商业模式,是一种计算模式。把计算的任务分配到相关的计算设备中去,形成一个巨大的资源库。云计算的使用用户就可以根据自己的需求从资源库中调出自己所需要的资源,来提供足够的信息服务。
(2)从维基百科我们查到的概念就是:云计算服务的用户主要指的是对于计算提供的服务并不了解的客户,他们没有一些实际的技术支撑,也没有相关的软件知识和能力。所以为他们提供一些基础的服务,让他们能够有足够的储存,还有一个计算的能力。
(3)IBM 的技术白皮书对于云计算的概念,主要是指云计算是一个系统的平台,或者说是这一类的应用的程序。根据当地的需求进行一个动态的分配和部署。然后及时的进行调整和解决问题。它也算是一个虚拟的网络服务方面的系统。
(4)对云计算的定义,中国云计算网定义的是如下:云计算指的是一种传统的分布式的计算,包括计算能力,还有网络的发展和推进都有很大的影响。或者说是比较商业的一种模式来实现这些比较科学的概念。
(5)NIST(美国国家标准技术研究所)将云计算定义为:云计算虽然是一种计算模式,但是他是给用户是带来方便的一种计算模式,所以要让用户随时需要的时候就能够随时通过网络对于资源进行访问,包括计算的一些设备,还有需要的应用程序等。在这种情况下,能最大程度上的提供合理的服务。
但是,云计算又是在不断的发展和完善的,所以这些相关的服务和定义也是会随着时间而进一步的加强和完善的。会变得更加方便,便捷,用户的体验会更好。
...............................

2.2 Hadoop 平台
2.2.1 Hadoop 简介
在 2005 年, Hadoop 得到了 Apache 企业的引入,经过不断发展逐渐形成的一个分布式系统架构。由于得到了Google 公司 Map Reduce 模型的启发,Hadoop得以成功构建。在 2003 年-2004 年,Google 公司一共发布了三篇技术论文,分别了GFS( System File Google )、Map Reduce 以及 Big Table ,后来,通过这三篇技术论文, Cutting Doug 实现了DFS(分布式文件系统)以及 Map Reduce 机制。到了2006 年,在 Hadoop 中引入 Map Reduce ,从此, Hadoop 发展成分析数据与处理数据的一个重要计算框架。
Hadoop 具备很多优点。即使是对性能并不高的集群而言,Hadoop 同样能够运行并实现大规模数据处理,如此,即使用户不进行硬件更改,同样可以满足不同节点的内存以及存储空间,从而使整个集群的利用率得到最大程度的发挥。Hadoop 属于一种分布式系统结构,其操作具备简单性和便捷性,对用户而言,无需掌握底层的全部细节,也可以按照自己的需求来开发分布式应用程序,且其存储能力以及数据处理能力都非常强。Hadoop 主要利用 Map 函数和Reduce函数来实现数据分析以及数据处理,对适用于 Map Reduce 编程任务的模型而言,通过 Hadoop 可以进一步降低集群设备配置的要求。按照自己的需求来对数据进行自动的调整,对于部分暂时没有用到的节点进行关闭操作。同时, Hadoop 还可以自动处理节点故障,如果检测到任务不成功,那么可以在另外处于空闲状态的节点上重启任务,如此,不仅可以有效确保数据处理的准确性,同时还可以提高数据处理的完整性。
该论文为收费论文,请扫描二维码添加客服人员购买全文。