云数据管理系统中查询技术研究综述(下)(2)
时间:2016-03-01 14:54 文章来源:http://www.lunwenbuluo.com 作者:史英杰 孟小峰 点击次数:
与基于原始MapReduce的连接算法相比,基于调整MapReduc的连接算法可以通过较少的作业完成原始MapReduc框架需要多个作业才能完成的复杂连接,因此可以减少中间结果的数据传输和检查点数量.对MapReduce框架的调整主要通过增加处理函数或者扩展部分数据流程实现,这使得原来简单易用的MapReduce框架变得复杂,也增加了编程接口的使用难度。
3.2.3查询优化
在数据管理系统中,对于一个给定的查询,通常有多种处理策略,查询优化技术负责从多种策略中找出最有效的查询处理计划.云数据管理系统中的查询优化可以从两个方面进行:一方面在解析查询语句并生成MapReduce计划时进行,根据数据的元信息选择执行更为高效的MapReduce计划;另一方面在执行MapReduce任务时进行,根据数据的统计和资源分配等信息构造详细的任务执行策略.已有的查询优化工作主要集中在第2个方面,下面从任务的调度、任务的处理优化两个方面对已有工作进行总结。
(1)调度优化
云计算是一个多用户的环境,服务提供商依据签订的相关协议向用户提供不同级别的服务,因此对不同用户提交的查询进行调度以保证服务质量是非常必要的.另一方面,云计算环境通常是分布式异构的,查询往往被分解成多个任务并行执行,根据资源的占用情况和节点的运行情况对任务进行有效的调度对查询优化有着至关重要的作用.目前针对调度的优化已经有不少工作,根据调度对象的粒度,可以把已有工作分成3个类型:查询调度[38]、皿&9尺《^";作业调度[39]和MapReduce任务调度[16'4。]。
文献[38]提出了一种在云环境下对用户提交的查询进行调度的算法iCBS.服务提供商和用户之间通过签订服务等级协议SLA(ServiceLevelAgree^ment)来保障云服务的质量和可靠性,SLA定义了为用户提供的服务标准以及服务商不能满足服务需求的惩罚代价.SLA涉及云服务中可用性、安全性等多个方面,iCBS主要关注查询响应时间.该算法根据查询的提交时间和该查询的SLA相关定义以增量的方式计算其优先系数,依据优先系数对查询进行调度,以尽量减少查询的响应时间,并减少服务提供商因不能满足SLA需求而产生的代价,CBS的时间复杂度为O(logN),其中N为查询的数量。
文献[39]提出了一种对MapReduce作业进行调度的算法FAIR来优化作业的执行效率.传统的MapReduce作业调度方法是先进先出(FIFO)算法,这种算法实现起来比较简单,但是在多用户的环境下会影响作业的执行效率.FAIR提供了一种让用户公平获取计算资源的调度算法,它使用资源池组织作业,并把资源公平的分到资源池中.每个用户使用一个资源池,这样每个用户可以获得等同的资源分配.除此之外,FAIR允许赋给资源池保证最小共享资源(guaranteedsharedresourece),这样可以保证特定用户、群组或生产应用程序总能获取到足够的资源oPhan等人[40]关注异构环境下MapReduce作业的任务调度优化,把每个任务的执行时间、心跳检测时间间隔、数据输入时间等5个变量组合成约束集合,以最小化作业的延迟相应时间为目标函数,将MapReduce作业调度问题转化成约束满足问题(ConstraintSatisfactionProblem,CSP)进行解决.文献[6]的调度粒度也是MapReduce任务,主要关注掉队任务(stragglertask)的调度优化.在传统的MapReduce调度中,为了防止作业执行过程中"木桶效应"的出现,会将掉队任务进行备份执行.然而原有的掉队任务调度方法假设集群环境的同构性和任务执行的等速性,这在实际的云计算环境中往往是无法保证的.基于上述问题,文献[16]提出了LATE算法,根据所在节点的性能预测每个任务的剩余完成时间,并选择剩余时间最长的任务作为掉队任务进行调度.在调度过程中,如果有空闲的任务槽位(taskslot)出现并且正在运行的任务总数小于特定阈值,则创建该任务的执行副本.该算法需要对所有正在运行的任务进行剩余时间的预测和排序,算法复杂度为〇(M),M为正在运行的任务个数。
(2)任务处理优化
基于MapReduce实现云数据的查询可以获得良好的扩展性、容错性以及较高的性价比,然而粗犷的批处理模式导致基于原始MapReduce框架的查询性能有很大的提升空间.查询任务处理的优化问题引起了学术界的广泛关注,已有的优化措施包括以下几种:
①任务共享.云环境中的数据查询通常是以批处理的方式处理大规模数据,在该模式下通过查询之间的任务共享来减少冗余计算将有效减少查询执行时间和耗费的计算资源.只^^[9]提供了一种用户自定义模式的数据扫描共享(scanshare),如果两个作业的输入数据文件相同,则会创建一个新的MapReduce作业负责数据的读入和解析,并为两个作业产生相应的临时输入文件.这种任务共享方法增加了一个MapReduce作业,而且还需要用户自已定义共享函数.另一类任务共享方法是把满足共享任务条件的作业分到一个组中,使用一个MapReduce作业来完成原来多个作业需要完成的工作,不需要用户自定义,也不需要产生临时文件[41-44].文献[42-43]主要支持数据扫描共享,而文献[43-44]则支持扫描共享、Map输入Map输出以及Map函数的共享。
- 论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
- 论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
-
- 论文投稿客服QQ:
2863358778、
2316118108
-
- 论文投稿电话:15380085870
-
- 论文投稿邮箱:lunwenbuluo@126.com