【技术实现步骤摘要】
分布式文件系统的数据备份方法
本专利技术涉及分布式文件系统,具体涉及不同分布式文件系统的集群之间数据备份的技术或称之为文件同步的技术。
技术介绍
HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统),是一种采用Java语言开发的开源分布式文件系统,具有高容错性,适用于超大数据集的应用程序。为了避免因设备故障、突发断电或是自然灾害(如地震、海啸等)而引起数据的丢失,需要将某一文件系统(源文件系统)中的数据备份或迁移至地理位置相隔较远且相对安全的集群的另外一个文件系统(目标文件系统)中。HDFS提供一个数据备份命令distcp(DistributeCopy,分布式数据复制),用于不同集群的文件系统之间进行数据备份,distcp是一个MapReduce作业,复制的工作由集群中并行运行的Map完成。该复制命令是将每个文件分配一个单一的Map进行复制,是基于文件级的复制,在数据备份时删除目标文件系统的目标文件重新写入源文件,即使目标文件中已存在源文件的某些文件块内容也会删除后重新写入,因此,采用该方法进行数据备份时耗时过长,容易导致带宽占用严重,网络负荷过大。另外,采用该方法进行数据备份或文件系统迁移时,若执行过程中发生了异常中断,此时目标文件系统中已包含了中断前备份成功的大量目标文件,而当再次重新开始备份时,目标文件系统中已成功备份的文件仍被删除后重新写入。
技术实现思路
鉴于上述内容,有必要提供一种分布式文件系统的数据备份方法,能够有效利用目标文件系统的目标文件的已有数据,分析源和目标文件系统中源和目标文件的信息,在数据备份 ...
【技术保护点】
【技术特征摘要】
1.一种分布式文件系统的数据备份方法,应用于两个集群的HDFS文件系统,其特征在于,该方法包括:元数据同步步骤:同步控制节点根据客户端输入的数据备份命令中的源路径获取拷贝列表,同步该拷贝列表中所有源和目标文件的元数据,并生成各源文件的文件校验码列表;文件差异分析步骤:同步控制节点将源文件的每个文件块的校验码与目标文件的各文件块的校验码进行比较,判定源和目标文件中各文件块的内容一致性,根据判定结果替换文件校验码列表中的源文件块和源数据节点,并将文件校验码列表的各行记录发送至相应的源数据节点;文件块差异分析步骤:源数据节点接收文件校验码列表的行记录,将该行记录中的源文件块的每个chunk的校验码与目标文件块的各chunk的校验码进行比较,判定源和目标文件块中各chunk的内容一致性,根据判定结果生成文件块差异表,并将该文件块差异表和接收的文件校验码列表的行记录发送给对应的目标数据节点;及数据备份步骤:目标数据节点创建临时文件块,根据接收的文件块差异表写入数据至该临时文件块,以临时文件块的内容替换目标文件块的内容;所述的元数据同步步骤包括:a)同步控制节点根据客户端输入的源路径从源文件系统的元数据节点获取拷贝列表,创建线程池并根据该拷贝列表为每个线程分配源文件,该拷贝列表为源路径下的所有源文件的列表,包括各源文件的文件名、大小以及文件路径;b)同步控制节点的各线程从源文件系统的元数据节点获取各线程被分配的源文件的元数据,根据源文件的元数据从相应的源数据节点中分别获取源文件包含的各文件块的校验码;c)同步控制节点的各线程从目标文件系统的元数据节点获取各源文件对应的目标文件的元数据,比较源和目标文件的大小,根据比较结果,向目标文件系统的元数据节点申请创建或删除目标文件的文件块,使得目标文件大小与源文件一致;d)同步控制节点的各线程从目标文件系统的元数据节点重新获取各目标文件的元数据,根据各目标文件的元数据从相应的目标数据节点获取各目标文件包含的所有文件块的校验码;e)同步控制节点的各线程根据各自的源和目标文件的元数据以及所有源和目标文件块的校验码生成文件校验码列表,该文件校验码列表包括:文件块的序号、源文件块ID、源文件块校验码、源数据节点ID和目标文件块ID、目标文件块校验码、目标数据节点ID以及目标文件块是否为新创建文件块的标记位Flag。2.如权利要求1所述的分布式文件系统的数据备份方法,其特征在于,所述的文件差异分析步骤包括:a)依次将源文件的每个文件块的校验码分别与目标文件的所有目标文件块的校验码进行比较,判定源和目标文件块的内容一致性;b)当存在与源文件块内容相同的目标文件块,则将文件校验码列表中该源文件块的序号对应的源文件块ID和源数据节点ID分别替换为与该源文件块校验码相同的目标文件块的文件块ID和目标数据节点ID,当不存在与源文件块内容相同的目标文件块时,则返回步骤a继续下一个源文件块的比较;c)判定是否为最后一个源文件块,若是,则进入步骤d,否则返回步骤a继续下一个源文件块的比较;d)遍历文件校验码列表,删除源和目标文件块ID相同且源和目标数据节点ID相同的行记录;e)根据源数据节点ID,将文件校验码列表的各行记录分别发送至相应的源数据节点。3.如权利要求1所述的分布式文件系统的数据备份方法,其特征在于,所述的文件块差异分析步骤包括:a)源数据节点接收文件校验码列表的行记录,向目标数据节点发送该行记录和目标文件块校验码列表请求以获取目标文件块包含的各chunk和各chunk的校验码;b)源数据节点将行记录中的源文件块等分为多个相同大小的有序chunk,根据摘要算法计算各chunk的校验码;c)目标数据节点接收行记录和目标文件块校验码列表请求,将目标文件块等分为多个相同大小的有序chunk并计算各chunk的校验码,生成目标文件块校验码列表,返回给源数据节点,该目标文件块校验码列表包括:目标文件块中各chunk的序号、目标chunkID和目标chunk的校验码;d)源数据节点接收目标文件块校验码列表,并创建源文件块的文件块差异表,该文件块差异表包括:源文件块中各chunk的序号、源chunkID和差异信息;e)源数据节点依次将源文件块的每个chunk的校验码分别与目标文件块的所有目标chunk的校验码进行比较,判定源和目标chunk的内容一致性;f)当存在与源chunk的内容相同的目标chunk,修改文件块差异表中该源chunk的ID为该目标chunk的ID;g)当不存在与源chunk的内容相同的目标chunk,修改文件块差异表中该源chunk的ID为NULL并将该源chunk的内容写入差异信息;h)判定是否为最后一个源chunk,若是,则进入步骤i,否则返回步骤e继续下一个源chunk的比较;i)源数据节点发送该文件块差异表...
【专利技术属性】
技术研发人员:武永卫,陈康,郑纬民,李贞强,
申请(专利权)人:深圳清华大学研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。