一种数据迁移方法及装置与流程

文档序号:12364244阅读:345来源:国知局
一种数据迁移方法及装置与流程
本发明涉及数据处理
技术领域
,特别涉及一种数据迁移方法及装置。
背景技术
:HDFS(HadoopDistributedFileSystem,大数据结构的分布式文件系统)用于存储数据,包括:一个NameNode(命名节点)和至少一个DataNode(数据节点)。其中,NameNode主要负责管理HDFS的命名空间、HDFS配置信息和存储块的复制等;DataNode是文件存储的基本单元,它将存储块存储在本地文件系统中,保存存储块的元数据,同时周期性地将所有存储块信息发送给NameNode,一个存储块为一个数据的副本。另外,DataNode又分为磁盘层节点和归档层节点,磁盘层节点拥有较高的计算能力;归档层节点拥有较高的存储密度、较低的计算能力。技术实现要素:本发明实施例公开了一种数据迁移方法及装置,以提高HDFS的资源利用率。为达到上述目的,本发明实施例公开了一种数据迁移方法,应用于命名节点,所述方法包括:获取目的数据的第一存储策略和读取频率;确定所述第一存储策略的目的读取频率范围,并判断所述读取频率是否在所述目的读取频率范围内;若为否,根据所述读取频率确定第二存储策略,将所述第一存储策略修改为所述第二存储策略,并根据所述第二存储策略迁移所述目的数据。在本发明的一个实施例中,所述获取目的数据的第一存储策略和读取频率,包括:获取目的数据的第一存储策略,并根据预设的存储策略和数据周期间的对应关系,确定所述第一存储策略对应的第一数据周期;获取所述目的数据的读取次数;根据所述第一数据周期和所述读取次数,确定所述目的数据的读取频率。在本发明的一个实施例中,所述根据所述读取频率确定第二存储策略,将所述第一存储策略修改为所述第二存储策略,并根据所述第二存储策略迁移所述目的数据,包括:根据所述读取频率确定第二存储策略,将所述第一存储策略修改为第二存储策略,并将所述目的数据的迁移状态设置为待迁移状态;当当前时间达到预设时间时,根据所述第二存储策略,对迁移状态为所述待迁移状态的目的数据进行迁移。在本发明的一个实施例中,所述根据所述第二存储策略迁移所述目的数据,包括:当所述第一存储策略为温数据存储策略,第二存储策略为冷数据存储策略时,删除存储在磁盘层节点中所述目的数据的存储块。在本发明的一个实施例中,所述根据所述第二存储策略迁移所述目的数据,包括:当所述第一存储策略为冷数据存储策略,第二存储策略为温数据存储策略时,将存储在归档层节点中所述目的数据的存储块复制至磁盘层节点。为达到上述目的,本发明实施例还公开了一种数据迁移装置,应用于命名节点,所述装置包括:获取单元,用于获取目的数据的第一存储策略和读取频率;判断单元,用于确定所述第一存储策略的目的读取频率范围,并判断所述读取频率是否在所述目的读取频率范围内;迁移单元,用于在所述判断单元判断结果为否的情况下,根据所述读取频率确定第二存储策略,将所述第一存储策略修改为所述第二存储策略,并根据所述第二存储策略迁移所述目的数据。在本发明的一个实施例中,所述获取单元,具体用于:获取目的数据的第一存储策略,并根据预设的存储策略和数据周期间的对应关系,确定所述第一存储策略对应的第一数据周期;获取所述目的数据的读取次数;根据所述第一数据周期和所述读取次数,确定所述目的数据的读取频率。在本发明的一个实施例中,所述装置还包括:设置单元,用于根据所述读取频率确定第二存储策略,将所述第一存储策略修改为第二存储策略,并将所述目的数据的迁移状态设置为待迁移状态;所述迁移单元,还用于当当前时间达到预设时间时,根据所述第二存储策略,对迁移状态为所述待迁移状态的目的数据进行迁移。在本发明的一个实施例中,所述迁移单元,具体用于:当所述第一存储策略为温数据存储策略,第二存储策略为冷数据存储策略时,删除存储在磁盘层节点中所述目的数据的存储块。在本发明的一个实施例中,所述迁移单元,具体用于:当所述第一存储策略为冷数据存储策略,第二存储策略为温数据存储策略时,将存储在归档层节点中所述目的数据的存储块复制至磁盘层节点。本发明实施例提供了一种数据迁移方法及装置,命名节点可以实时地获取目的数据的读取频率,当读取频率在目的数据的目的读取频率范围内时,根据读取频率确定第二存储策略,将目的数据的存储策略修改为第二存储策略,最后,根据第二存储策略迁移目的数据。这样实时地获取目的数据的读取频率,实时地更新目的数据的存储策略,并迁移目的数据,提高了HDFS的资源利用率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的一种数据迁移方法的流程示意图;图2为本发明实施例提供的一种HDFS的结构示意图;图3(a)为本发明实施例提供的另一种HDFS的结构示意图;图3(b)为本发明实施例提供的另一种HDFS的结构示意图;图3(c)为本发明实施例提供的另一种HDFS的结构示意图;图4为本发明实施例提供的一种数据迁移装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在HDFS中存储的数据有3种,分别为:热数据、温数据和冷数据。其中,热数据被访问的频率(又可以称为读取频率)非常高,一般为每天被访问至少一次;温数据被访问的频率一般为每周被访问几次;冷数据被访问的次数非常低,一般为几个月或一年被访问几次。针对这3种类型的数据,HFDS中设置了3种存储策略,分别为:热数据存储策略、温数据存储策略和冷数据存储策略。若对一数据D应用热数据存储策略,那么该数据D的所有副本需要都存储磁盘层节点中;若对数据D应用温数据存储策略,那么数据D的一个副本存储在磁盘层节点中,数据D的其他副本需要存储在归档层节点;若对数据D应用冷数据存储策略,那么数据D的所有副本都需要存储在归档层节点中。下面通过具体实施例,对本发明进行详细说明。参考图1,图1为本发明实施例提供的一种数据迁移方法的流程示意图,该方法应用于HDFS中的NameNode,可参考图2,HDFS包括:一个NameNode100、一个以上作为磁盘层节点210的DataNode和一个以上作为归档层节点220的DataNode。该方法包括:S101:获取目的数据的第一存储策略和读取频率;其中,存储策略包括:热数据存储策略、温数据存储策略和冷数据存储策略。NameNode100会为每一数据配置存储策略,并根据配置的存储策略存储每一数据。如:目前需要存储一数据D1,那么NameNode100可以为数据D1分配热数据存储策略,将数据D1的所有副本都存储在磁盘层节点210,存储数据D1之后,随着数据D1被访问的频率,也就是读取频率的变化,调整数据D1的存储策略,并根据调整后的存储策略,迁移已存储的数据D1的副本。数据的存储策略和读取频率相关,因此在确定目的数据是否需要迁移时,可以先获取目的数据的第一存储策略和读取频率。实际应用中,通过NameNode100进行存储和读取数据。在本发明的一个实施例中,NameNode100中可以直接根据数据的读取次数计算得到该数据的读取频率,并存储数据的读取频率,这样,当需要确定是否迁移目的数据时,NameNode100可以直接获取目的数据的读取次数。在本发明的另一个实施例中,NameNode100可以仅记录数据的读取次数,另外,NameNode100还可以存储对应每一种存储策略的数据周期。这里,读取次数与时间对应;数据周期可以为一个确定的值,如7天,也可以为一个取值范围,如7天~15天。当需要确定是否迁移目的数据时,NameNode100可以获得目的数据对应的第一存储策略,再获取第一存储策略对应的第一数据周期,并可以根据读取次数对应的时间,获得距离当前时刻的第一数据周期内目的数据的读取次数,根据以下公式获得目的数据的读取频率:假设,目的数据读取次数分别为:[2015.10.110:00,1次],[2015.10.111:00,1次]、[2015.10.112:00,1次]、[2015.10.210:00,1次]、[2015.10.211:00,1次],若当前时刻为2015.10.212:00,第一数据周期为1天,则可以获得距离当前时刻的第一数据周期内目的数据的读取次数为:[2015.10.112:00,1次]、[2015.10.210:00,1次]、[2015.10.211:00,1次],也就是共3次,此时确定目的数据的读取频率为:3次/1天=3次/天。在一种较佳的实现方式中,上述读取次数和数据周期可以对应的存储在一个信息表中,可参考表1,表1为本发明实施例提供的一种信息表。表1数据数据周期读取次数存储策略Data1Age<7天20HotData27天<Age<1月5WarmData31月<Age<3月5Cold…………其中,Hot为热数据存储策略,Warm为温数据存储策略,Cold为冷数据存储策略。这样,NameNode100可以直接从上述信息表获取目的数据的数据周期和读取次数,进而确定出目的数据的读取频率。S102:确定第一存储策略的目的读取频率范围,并判断上述读取频率是否在目的读取频率范围内,若为否,执行S103;NameNode100还可以设置每一种存储策略的读取频率范围,如,可以设置:Hot的读取频率范围为[2次/天,∞),Warm的读取频率范围为[2次/周,14次/周),Cold的读取频率范围为策[0,8次/周)。在确定目的数据是否需要迁移时,可以先确定目的数据的读取频率是否在第一存储策略对应的目的读取频率范围:若目的数据的读取频率在目的读取频率范围内,则可以表明目的数据的存储策略无需更新,不需要对目的数据进行迁移;若目的数据的读取频率不在目的读取频率范围内,则可以表明目的数据的存储策略需要修改,目的数据需要迁移,也就是执行S103。S103:根据上述读取频率确定第二存储策略,将第一存储策略修改为第二存储策略,并根据第二存储策略迁移目的数据。在确定目的数据需要迁移时,可以确定目的数据的读取频率在哪种存储策略的读取频率范围内,进而确定第二存储策略,如:目的数据的读取频率在Hot的读取频率范围内,则可以确定第二存储策略为Hot。在确定第二存储策略后,就可以将目的数据的第一存储策略修改为第二存储策略,进而根据第二存储策略迁移目的数据,也就是,迁移目的数据的副本至对应的DataNode中。在本发明的一个实施例中,HDFS需要处理大量的数据,若在数据处理高峰时段对数据进行迁移,将影响HDFS的数据处理速度,并且数据迁移的效率也非常低。基于这种情况,可以为每一数据配置迁移状态,需要迁移的数据的迁移状态可以设置为待迁移状态(如“Doing”),不需要迁移的数据的迁移状态可以设置为完成迁移状态(如“Done”);另外,NameNode100中还可以预先设置一个时间,当到达该预设时间时,NameNode100扫描各个数据的迁移状态,获得迁移状态为Doing的数据的存储策略,并根据获得的存储策略对数据进行迁移。在迁移结束后,可以将迁移成功的数据的迁移状态设置为Done,避免一个数据不断的迁移,占用HDFS的计算资源,影响HDFS的数据处理速度。这里,预设时间可以为:凌晨00:00,凌晨03:00等HDFS的数据处理非高峰时刻。另外,在进行数据迁移时,避免将所有的数据迁移至部分磁盘层节点中或部分归档层节点中,可以将目的数据的副本负载均衡的迁移至对应的各个DataNode(磁盘层节点或归档层节点)中,也就是,对应的各个DataNode中存储一个目的数据的副本。在本发明的一个实施例中,若第一存储策略为Warm,表明当前目的数据的一个副本F1存储在磁盘层节点210中,其他所有的副本存储在归档层节点220中,若此时确定第二存储策略为Cold,可以将副本F1直接移动至归档层节点220中;另外,由于归档层节点220中已存储了目的数据的副本,若还将副本F1直接移动归档层节点220中,将会占用HDFS的计算资源和带宽,并且还会占用归档层节点220的存储空间,因此可以将副本F1在磁盘层节点210中删除;若第一存储策略为Cold,表明当前目的数据的所有副本都存储在归档层节点220中,若此时确定第二存储策略为Warm,为避免数据移动过程中占用HDFS的计算资源和带宽,可以在磁盘层节点210中复制一个目的数据的副本。值得一提的是,本发明实施例中,数据迁移可以包括:数据的复制、数据的删除和数据的移动等。这里,数据的移动可以为:直接将数据从源存储位置移动至目的存储位置;也可以为:在源存储位置剪切数据,在目的存储位置复制该数据等。下面结合一实例说明数据的迁移过程,可参考图3(a),图3(a)所示HDFS中包括一个NameNode100和6个DataNode,这6个DataNode中,3个作为磁盘层节点210,3个作为归档层节点220,数据Data1的存储策略为Hot,其3个副本Data1’、Data1”和Data1”’分别存储在3个磁盘层节点210中。在Data1存储一段时间后,Data1的读取频率降低,Data1的读取频率在Warm的读取频率范围内了,则需要将其存储策略Hot修改为Warm,并将其迁移状态设置为Doing,当当前时刻达到预设时间时,可以将Data1”和Data1”’负载均衡地迁移至归档层节点220中,同时,将Data1的迁移状态设置为Done,可参考图3(b);一段时间后,若Data1的读取频率再次降低,其读取频率在Cold的读取频率范围内了,则需要将Data1的存储策略Warm修改为Cold,并将其迁移状态设置为Doing,当当前时刻达到预设时间时,可以将Data1’直接删除,Data1”和Data1”’无需变化,同时,将Data1的迁移状态设置为Done,可参考图3(c);一段时间后,若Data1的读取频率提高了,并且其读取频率在Warm的读取频率范围内了,则需要将Data1的存储策略Cold修改为Warm,并将其迁移状态设置为Doing,当当前时刻达到预设时间时,可以根据Data1”或Data1”’直接在磁盘层节点210中复制一个Data1’,Data1”和Data1”’无需变化,同时,将Data1的迁移状态设置为Done,可参考图3(b);一段时间后,若Data1的读取频率再次提高,并且其读取频率在Hot的读取频率范围内了,则需要将Data1的存储策略Warm修改为Hot,并将其迁移状态设置为Doing,当当前时刻达到预设时间时,可以将Data1”和Data1”’负载均衡地迁移至磁盘层节点210中,同时,将Data1的迁移状态设置为Done,可参考图3(a)。本发明实施例提供了一种数据迁移方法,命名节点可以实时地获取目的数据的读取频率,当读取频率在目的数据的目的读取频率范围内时,根据读取频率确定第二存储策略,将目的数据的存储策略修改为第二存储策略,最后,根据第二存储策略迁移目的数据。这样实时地获取目的数据的读取频率,实时地更新目的数据的存储策略,并迁移目的数据,提高了HDFS的资源利用率。参考图4,图4为本发明实施例提供的一种数据迁移装置的结构示意图,该装置应用于HDFS中的NameNode,可参考图2,HDFS包括:一个NameNode100、一个以上作为磁盘层节点210的DataNode和一个以上作为归档层节点220的DataNode。该装置包括:获取单元401,用于获取目的数据的第一存储策略和读取频率;判断单元402,用于确定所述第一存储策略的目的读取频率范围,并判断所述读取频率是否在所述目的读取频率范围内;迁移单元403,用于在所述判断单元402判断结果为否的情况下,根据所述读取频率确定第二存储策略,将所述第一存储策略修改为所述第二存储策略,并根据所述第二存储策略迁移所述目的数据。在本发明的一个实施例中,所述获取单元401,具体用于:获取目的数据的第一存储策略,并根据预设的存储策略和数据周期间的对应关系,确定所述第一存储策略对应的第一数据周期;获取所述目的数据的读取次数;根据所述第一数据周期和所述读取次数,确定所述目的数据的读取频率。在本发明的一个实施例中,所述数据迁移装置还可以包括:设置单元(图4中未示出),用于根据所述读取频率确定第二存储策略,将所述第一存储策略修改为第二存储策略,并将所述目的数据的迁移状态设置为待迁移状态;这种情况下,所述迁移单元(图4中未示出),还用于当当前时间达到预设时间时,根据所述第二存储策略,对迁移状态为所述待迁移状态的目的数据进行迁移。在本发明的一个实施例中,所述迁移单元403,具体用于:当所述第一存储策略为温数据存储策略,第二存储策略为冷数据存储策略时,删除存储在磁盘层节点中所述目的数据的存储块。在本发明的一个实施例中,所述迁移单元403,具体用于:当所述第一存储策略为冷数据存储策略,第二存储策略为温数据存储策略时,将存储在归档层节点中所述目的数据的存储块复制至磁盘层节点。本发明实施例提供了一种数据迁移装置,命名节点可以实时地获取目的数据的读取频率,当读取频率在目的数据的目的读取频率范围内时,根据读取频率确定第二存储策略,将目的数据的存储策略修改为第二存储策略,最后,根据第二存储策略迁移目的数据。这样实时地获取目的数据的读取频率,实时地更新目的数据的存储策略,并迁移目的数据,提高了HDFS的资源利用率。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1