一种改进的数据本案放置策略_第1页
一种改进的数据本案放置策略_第2页
一种改进的数据本案放置策略_第3页
一种改进的数据本案放置策略_第4页
一种改进的数据本案放置策略_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种改进的数据本案放置策略

随着互联网和分布计算技术的发展,越来越多的数据密集应用已经出现。这些应用程序通常需要包含一系列tcp数据(1012b)。如何高效、可靠、方便地处理大量数据已成为一个重要的研究方向。同时,该网络基于其开放性已成为一个适合数据密集应用的合适平台。对于这些大规模数据集的并行编程模型,模型将大型任务分解为多个小型任务,并在一组中并行完成。对于集群中的多节点并行编程,任务被分解为动态模式和gfs数据存储方法的两个部分,因此编程者没有必要注意多节点和行计算的实现。开源代码。以前的布局是非常可靠的并行编程平台。ha是开源代码格式的分布式编程模型和基于数据存储方法的开发模式。目前,ha有许多成功的应用,如电子邮件、社交媒体等。此外,大多数其他网站,如历史数据和巨块数据,也在开发基于大量数据的应用。如何可靠而且合理地存放海量数据是Hadoop体系中的一个重要问题.由于集群由大量机器组成,存储结点的故障就不可避免.为了避免个别结点的失效导致数据永久性的丢失.Hadoop将数据的多个副本存放在集群中的不同机器上,当有结点失效时,其仍然可以读取数据.为此,应当将同一数据块的多个副本存放在相距较远的多个机器上,从而确保在整个机架都发生故障时数据的安全.但另一方面,由于MapReduce中的运算常常需要输入大量的数据,而大量数据的移动会显著影响运算的性能,所以数据的存放应当遵循本地性的原则,即数据应当距离运算结点较近,从而减少因数据移动带来的性能损失.针对这一问题,当前的HDFS在选择存放数据块的结点时采用的策略是机架感知策略.该策略将数据块的多个副本同时存放在本地机架与一个随机的远端机架的结点上,当客户结点发起读取数据结点请求时,就可以确保能够从本地读取数据.而且,若本地结点因故障失效,系统则通过远端结点的副本就可以进行数据恢复.但该策略在放置多于一个副本时采用的随机策略却可能导致数据恢复时不必要的性能损失.随机选取的远端机架的结点可能会由于距离本地结点太远而增加不必要的数据恢复时间,同时随机选取结点也不能保证结点之间数据存储的平衡.由于系统中结点的失效是常态,数据恢复时不必要的性能损失会导致整个存储系统性能下降.文献提出的LATE调度算法考虑了系统的异构性,通过为剩余时间最长的任务启动备份任务的方法,提高了MapReduce在异构环境下的效率调度性能.针对当前Hadoop实现中假设计算结点是同构的且没有考虑数据存放位置等问题,文献提出了根据计算结点的处理能力按比例存放数据的策略,该数据放置策略考虑到了结点异构性,通过提出的数据放置策略改进了Hadoop异构集群系统的性能.然而,它们都没有考虑到远程数据副本的网络距离和各结点数据的负载均衡.因此,文中针对HDFS数据块副本的放置问题,提出了基于评价值的选取策略,该策略结合结点距离与数据负载来改进数据块副本放置,以提高系统的存储性能和平衡结点存储资源的利用率.1数据访问策略1.1模式2,平台下沉aHadoop框架包括两个部分:由运算结点组成的MapReduce模块与由存储结点组成的HDFS.它们均采用主从式的管理方式.在HDFS中,负责数据块放置管理的结点为NameNode,目前在一个HDFS中只有一个NameNode.而负责实际数据存放的结点称为DataNode.当用户向NameNode发起存储请求时,NameNode按照指定的数据副本放置策略将数据存储在集群内的多个DataNode上.在当前的HDFS系统中,系统默认为每一个数据块存放3个副本,按照部署在NameNode上的默认机架感知策略存放数据块副本(如图1所示).其中,两个副本(数据块副本1、数据块副本2)存放于客户结点本地机架(机架A)上,当用户发起数据读取请求时可以较快地读取,从而保证数据具有较好的本地性;另外一个数据块副本(数据块副本3)存放于一个随机远端机架(机架B)的一个随机结点上;如果还有更多副本,则在整个集群中随机选取结点存放.当整个本地结点都失效时,HDFS系统将自动地通过远端机架上的数据副本将数据副本的数量恢复到标准数量.1.2基于随机选取着力点存储负载的扩大算法HDFS当前的数据放置策略较好地平衡了数据的本地性原则与数据的完整性.但由于HDFS集群由大量机器组成,系统中常常存在由程序Bug、操作系统崩溃、人为失误、内存硬盘网络故障等引起的结点失效,所以数据副本的恢复是系统运行时的常态,系统数据块恢复所用的时间因而成为制约系统性能的一个重要因素.由于采取随机选取远端机架的策略,当本地结点失效需要进行数据副本恢复时,若其他的数据副本存放在距离过远的机架上,就有可能因为在数据副本的自动恢复上耗费过长的时间而造成不必要的时间损失.另一方面,随机选取结点的存储方式也无法保证数据存储的平衡性,其受限于产生随机值的算法,数据有可能会更多地存放于某些结点上,而在另外一些结点上却只有很少数据的存放.特别地,当一个较大的集群系统已经运行了较长时间,每一个结点都有较重的存储负载时,若有少量新的空载结点加入集群,由于采用的是随机算法,系统就有更大的可能继续将数据存放在已有较重存储负担的结点上,而不能很好地将新的空载结点利用起来.虽然HDFS提供了Balancer程序可以对各个结点进行存储负载的平衡,但需要手动调用,且占用很大的网络带宽.下文将给出针对这一问题的改进策略.2提高数据处理策略2.1改进数据放置策略在上面提到的问题中,有两个方面的因素会影响HDFS的存储性能,其中一个是存放多个数据副本的存储结点的选取.为了保证在整个机架发生故障的情况下仍然可以进行自动数据恢复,应当将数据副本放置于不同的机架上.而且若选取的是距离当前结点较近的机架,数据的传输可以更快完成,从而提升存储时的性能.另一方面,选取存放数据副本的结点时应当使各个存储结点的负载保持一定的平衡,避免出现有的结点空转而浪费电力和有的结点负载过重而降低运行速度,从而确保充分地利用集群中的存储资源,提高存储的效率.改进的数据放置策略(如图2所示)为:当用户提交数据存储的请求时,NameNode随机选取一定数量的多个不同机架的结点;然后获取各个结点在网络拓扑中到当前结点的距离信息以及各个结点当前存放的数据副本数量,结合两方面信息给出每个结点的调度评价值E(如E1—E5),依据此调度评价值从高到低选取数据存放结点.该方法综合了数据存放结点的网络距离与数据负载两方面因素,既能实现数据存放的负载均衡,又能实现良好的数据传输性能.2.2评价函数正如上面提到的,对于每一个结点,改进的策略会依据当前的距离与负载信息给出一个调度评价值,将该值作为选择数据放置结点的依据,具体的评价方法如下.对于每一个DataNode,有式中:f(ld,d)为结点评价函数;l为该DataNode的负载系数,反比于该结点当前存放的数据块数;d为距离系数,反比于该DataNode到当前DataNode的网络距离;A∈,为平衡因子,用于描述数据负载和网络距离参数在评价中的比重,由系统管理员根据系统对负载均衡和数据传输性能的需求指定.2.3基于云存储系统的调度优化算法基于上面的基本思想,以下给出算法的类java语言伪代码:该算法部署于云存储系统的调度结点,当用户提交数据块存储请求时调用,算法中候选结点数量H是一个小于等于机架总数量的整数,N为所需选取的远端数据结点总数.2.4模式4:平台生成负载和网络距离信息提取数据选取负载与网络距离本研究在Hadoop上实现了所提出的策略,具体的实现方法如下.为保证数据存储的本地性和数据的安全性,实现时仍然按照HDFS默认的方法(设置1个数据块有3个副本),即2个副本存放于客户结点,1个副本存放于远端机架的结点上的方法.在Hadoop-0.21.0上实现提出的策略,主要是实现抽象类BlockPlacementPolicy.该抽象类提供数据块副本放置的相关方法,每当有数据块存储请求提交时其就会被调用.该类最主要的方法是chooseTarget(),它直接负责存放数据块时选取DataNode结点.为了获取DataNode数据的负载与网络距离信息,重写了方法chooseTarget(),实现了如下功能:(1)在该类中增加NetworkTopology类成员变量clusterMap,该成员在类的构造函数中实例化.使用clusterMap的成员方法NodechooseRandom(Stringscope)可以获得随机的DataNode,而clusterMap的成员方法intgetDistance(Nodenode1,Nodenode2)可以得到新的DataNode与当前DataNode之间的网络距离.(2)Hadoop系统中描述DataNode的类DataNodeDescriptor提供的方法intnumBlocks()可以获取特定DataNode上已经存放的数据块数量(可用于表示该DataNode上当前的负载).将这两方面信息代入评价函数计算得到各DataNode结点的调度评价值,选取评价值最大的DataNode作为数据放置结点,即选择了综合权衡数据负载与网络距离较优的数据放置结点,从而优化数据块存放.BlockPlacementPolicy类的实现简化代码如下:3基于hdfs的数据块存储均衡为了验证提出的改进策略使用在HDFS上的性能,本研究在Hadoop-0.21.0上进行了所提出策略的验证实验,并与系统默认策略进行了比较.实验集群共有4个机架(机架A、B、C、D),每个机架有5个DataNode,Hadoop系统将各个DataNode视为拥有相同的性能.Hadoop系统将网络描述为树形拓扑结构,叶结点表示DataNode,内部结点表示路由器、交换机等网络设备.在网络拓扑中,记儿子结点到其父结点的距离为1,任意两个结点的距离为两个结点到其最近公共祖先结点的距离和.按照如上Hadoop中关于距离的定义,可以得出实验所用的集群中的任意两机架间的距离,如表1所示.实验中,提交数据的客户端程序是机架A中的一个结点,共有2000个大小相同的数据块从这个结点提交,按照HDFS的默认策略,每一个数据块都有且仅有一个副本存放于非本地机架的机器上,所以一共需要在另外4个机架上存放2000个数据块副本,而本地机架一共需要存放4000个数据块副本.实验假设系统启动时所有的DataNode都处于空载状态.采用Hadoop默认数据放置策略时,数据块副本的分布情况如图3(a)、3(b)所示.部署新的策略后,指定平衡因子A为0.5时,随机产生10个候选结点,并从其中选取评价值最优的结点,得到的数据块副本的分布情况如图3(c)和3(d)所示.由于新的策略中距离本地机架A较近的机架上的结点会获得更高的评价值,因而在初始负载相同的情况下,新策略会将更多数据块副本放置于较近的机架上.本实验中,每一个数据块副本到本地机架的平均拓扑距离为3.6815,新的数据块副本放置策略将数据块到本地结点的平均距离缩短了22.1%,并且在每一个远端机架内部都取得了更好的数据平衡,新的数据放置策略下每一个机架内部的各个结点存储的数据块副本数量相差不超过2.而本实验中采取默认的数据放置策略时,在一个机架内部的各个DataNode上,存储的数据块数量相差最大为25.特别地,如果用户希望在存储时拥有更高的存储速度,同时系统内的各个DataNode均有较大的剩余存储空间,则可以通过设置平衡因子使系统牺牲一定的数据块存储均衡来实现.具体的做法是将平衡因子设定为一个较小的数,从而增大距离因素的权值并减小负载因素的权值.在本实验中,若设定A=0.1,则可以在远端机架得到如图4所示的数据块分布情况.由于机架C距机架A有最近的拓扑距离,因此在较少考虑机架C的数据负载的情况下,系统将接近90%的数据块副本放置于机架C上,从而数据块到机架A的平均距离只有1.083.相对于本实验中系统默认策略的数据块分布其缩小了77.1%,使得数据块节省了数据从机架A上提交存储所需要的网络带宽,从而节省了存储时间.然而,在系统内各个DataNode均已有较重的存储负载时,仍然采用HDFS默认的随机存储策略有可能会加剧一部分结点的存储负担.在这样的情况下,以尽量均衡的方式将数据块存储于整个集群中是更为理想的策略.该情况下,通过将平衡因子A设置为一个较大的值可以使系统在选取存储结点时更多地考虑负载平衡,从而在整个存储集群上实现负载的均衡.本实验中,若设定A=0.9,则可以在远端机架上得到如图5所示的数据块分布情况.在较少考虑机架距离因素的情况下,系统通过将数据块尽量均匀地分布到各个数据结点上以减少单个结点的存储负载.在最后一次实验的数据块分布中(见图5),整个集群内所有数据结点存储数据块副本的数量最大值与最小值相差为9,相对于系统默认策略数据块副本的数量差降低了74.3%.另一方面,由于引入了对候选结点的评价过程,改进的策略也带来了一定的时间开销.从上面的算法描述可知,改进的策略会在每需要选取一个数据结点时增加复杂度为O(H)的时间开销,其中H为策略执行过程中候选结点的数量.该值在HDFS启动前指定,是一个小于HDFS集群内机架总数的值.为了检验改进策略所带来的时间开销,文中在相同的环境下,分别使用改进策略与默认策略向HDFS内的同一个数据结点提交同样大小的文件,记录从发出文件提交请求到文件存储完成所用的时间.由于HDFS数据结点的选取以数据块为单位,而1个数据块默认大小为64MB,因此,实验中提交的文件均为64MB,以此检验改进策略在存放数据块时的时间开销.实验中,分别在采用默认策略与改进策略的情况下,提交4个大小为64MB的文件(存储文件1、文件2、文件3、文件4),它们从NameNode接到请求到数据存储完成分别所用的时间如表2所示.由表2可知,在本实验中,改进策略相对于默认策略需要的时间开销平均升高了538ms,即9.07%.综上所述,改进策略通过结合远端数据结点到本地机架的网络距离与该结点的当前存储负载,给出该结点的一个评价值,并依据此评价值选取数据结点.此方法一方面可以缩短数据块存储的平均距离,减少存储时间;另一方面也可以降低数据结点之间存储负载的不平衡,特别是能在一个机架内实现各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论