CN113934575A - 一种基于分布式拷贝的大数据备份系统及方法 - Google Patents

一种基于分布式拷贝的大数据备份系统及方法 Download PDF

Info

Publication number
CN113934575A
CN113934575A CN202111224865.2A CN202111224865A CN113934575A CN 113934575 A CN113934575 A CN 113934575A CN 202111224865 A CN202111224865 A CN 202111224865A CN 113934575 A CN113934575 A CN 113934575A
Authority
CN
China
Prior art keywords
file
backup
module
machine
disaster recovery
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111224865.2A
Other languages
English (en)
Inventor
石志强
苏亮彪
周华
胡军擎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Information2 Software Inc
Original Assignee
Shanghai Information2 Software Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Information2 Software Inc filed Critical Shanghai Information2 Software Inc
Priority to CN202111224865.2A priority Critical patent/CN113934575A/zh
Publication of CN113934575A publication Critical patent/CN113934575A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于分布式拷贝的大数据备份系统及方法,该系统包括:HADOOP集群,部署HJOB模块,通过HJOB模块与灾备机交互获取文件状态主表,在接收到备份/恢复指令时,根据文件状态主表生成待备份/待恢复文件状态列表,启动并划分MAPPER任务,通过MAPPER任务根据输入的待备份/待恢复文件状态列表中的文件项,向灾备机发送相应的备份文件或文件读取指令;灾备机,部署Node模块,于接收到HADOOP集群节点传输的待备份文件的文件流数据后,通过第二File模块处理文件流写入灾备机,于接收到文件读取指令时,通过第二File模块读取文件流并发送给所述HADOOP集群节点。

Description

一种基于分布式拷贝的大数据备份系统及方法
技术领域
本发明涉及计算机容灾备份技术领域,特别是涉及一种基于分布式拷贝的大数据备份系统及方法。
背景技术
DistCp(Distributed Copy,分布式拷贝)是用于大规模集群内部或者集群之间的高性能拷贝工具,其与在linux上执行cp(copy,拷贝)、scp(secure copy,安全拷贝)实现效果是一致的,不同的是,cp(copy,拷贝)是将本机的文件和目录拷贝到本机的其它地方,scp(secure copy,安全拷贝)则可以将A机器的文件或者目录拷贝到B机器,而Distcp分布式拷贝则可以实现的是A(hdfs)集群的数据拷贝到B(hdfs)集群,其中hdfs指Hadoop分布式文件系统。分布式使得数据拷贝时,可以实现A集群的DN节点同时向B集群的DN节点发送数据,突破了单机拷贝的网卡速率限制,拷贝效率更高,同时Distcp拷贝使用Map/Reduce任务实现文件分发,错误处理和恢复,以及报告生成,它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝(实际上Distcp分布式拷贝只用到了map,没有用到reduce)。
然而,目前的分布式拷贝只能是备份到集群HDFS文件系统,即其目标文件系统只能是HDFS,不能是如linux,windows等可以运行JAVA虚拟机的任意基础OS的文件系统。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种基于分布式拷贝的大数据备份系统及方法,以实现其备份的目标文件系统可以是linux,windows等可以运行JAVA虚拟机的任意基础OS的文件系统,并在不影响基于HDFS的应用业务运行的前提下进行大数据HDFS备份任务。
为达上述目的,本发明提出一种基于分布式拷贝的大数据备份系统,包括:
HADOOP集群,部署HJOB模块,通过所述HJOB模块与灾备机交互获取文件状态主表,在接收到备份指令时,根据文件状态主表生成待备份文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,通过MAPPER任务根据输入的待备份文件状态列表中的文件项,向灾备机发送相应的备份文件;接收到恢复指令时,根据所述文件状态主表生成待恢复文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后写入HDFS源文件;
灾备机,部署Node模块,于接收到所述HADOOP集群节点传输的待备份文件的文件流数据后,通过第二File模块处理文件流写入灾备机;于接收到文件读取指令时,通过第二File模块读取文件流并发送给所述HADOOP集群节点。
优选地,所述HJOB模块进一步包括:
文件状态主表获取模块,用于通过第一Net模块与灾备机交互获取文件状态主表;
文件状态列表生成模块,用于在接收到备份/恢复指令时,将需要备份/恢复的目录中的文件跟获取的文件状态主表进行对比生成待备份文件状态列表/待恢复文件状态列表;
MAPPER启动模块,用于根据待备份文件状态列表/待恢复文件状态列表对待备份/待恢复文件划分MAPPER任务,启动MAPPER任务;
第一File模块,用于在Mapper任务的控制下获取待备份文件的文件流通过第一Net模块发送给灾备机;当通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据写入HDFS源文件;
文件读取指令发送模块,用于通过MAPPER任务向灾备机发送文件读取指令;
第一Net模块,用于实现所述HADOOP集群节点与灾备机的网络传输。
优选地,所述MAPPER启动模块对待备份/待恢复文件按文本行进行划分,一行代表一个文件,一个文件对应一个mapper任务进行数据传输。
优选地,所述灾备机进一步包括:
Node模块,用于提供灾备机的入口,接收HADOOP集群节点传输的待备份文件的文件流数据,并于接收到文件读取指令时,启动第二File模块读取相应的文件流,以通过第二Net模块发送至HADOOP集群节点;
第二File模块,用于在所述Node模块接收到HADOOP集群节点传输的待备份文件的文件流时,查询灾备机磁盘状态,根据查询结果写入灾备机;在所述Node模块接收到文件读取指令时,根据文件读取指令读取相应的文件流,并通过第二Net模块发送至HADOOP集群节点;
第二Net模块,用于实现所述HADOOP集群节点与灾备机的网络传输;
Data模块,用于记录磁盘空间、备份文件状态以及备份记录。
优选地,所述Node模块集成了与控制机交互的RPC框架以及TIMER定时任务框架,通过定时任务向所述HADOOP集群节点的HJOB模块发送备份恢复指令。
优选地,所述第二File模块在接收到所述HADOOP集群节点传输的待备份文件的文件流时,调用所述Data模块,通过所述Data模块检查灾备机磁盘的空闲空间大小,根据查询结果将接收的文件数据写入灾备机磁盘。
优选地,所述系统还包括控制机,用于与所述灾备机的Node模块交互,提供各灾备机数据节点的注册,向各灾备机数据节点下发备份规则。
为达到上述目的,本发明还提供一种基于分布式拷贝的大数据备份方法,包括如下步骤:
步骤S1,于HADOOP集群节点上部署HJOB模块,通过所述HJOB模块与灾备机主节点交互获取文件状态主表;
步骤S2,当接收到备份指令时,HJOB模块根据所述文件状态主表生成待备份文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,通过MAPPER任务根据输入的待备份文件状态列表中的文件项,向灾备机发送相应的备份文件;
步骤S3,当接收到恢复指令时,HJOB模块根据所述文件状态主表生成待恢复文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后写入HDFS源文件。
优选地,步骤S2进一步包括:
步骤S200,在接收到备份指令时,将需要备份的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待备份文件状态列表;
步骤S201,对待备份文件划分Mapper任务,启动Mapper任务;
步骤S202,在Mapper任务的控制下根据输入的待备份文件状态列表中的文件项,向灾备机数据节点发送相应的备份文件。
优选地,步骤S3进一步包括:
步骤S300,在接收到备份恢复指令时,将需要恢复的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待恢复文件状态列表;
步骤S301,对所述待恢复文件状态列表的待恢复文件划分Mapper任务,启动Mapper任务;
步骤S302,通过Mapper任务向灾备机发送文件读取指令;
步骤S303,当HJOB模块通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据通过第一File模块写入HDFS源文件。
与现有技术相比,本发明一种基于分布式拷贝的大数据备份系统及方法通过对分布式拷贝DistCp进行改进,实现了一种介于DistCp和scp中间的新的拷贝方式,其备份的目标文件系统可以是linux,windows等可以运行JAVA虚拟机的任意基础OS的文件系统,本发明可在不影响基于HDFS的应用业务运行的前提下进行大数据HDFS备份任务。
附图说明
图1为本发明一种基于分布式拷贝的大数据备份系统的系统架构图;
图2为本发明一种基于分布式拷贝的大数据备份方法的步骤流程图;
图3为本发明实施例中基于分布式拷贝的大数据备份与恢复的流程图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
在介绍本发明之前,先说明本发明所涉及的几个概念:
BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
Java Timer(定时器):Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以安排任务“执行一次”或者定期“执行多次”。
图1为本发明一种基于分布式拷贝的大数据备份系统的系统架构图。如图1所示,本发明一种基于分布式拷贝的大数据备份系统,包括:
HADOOP集群10,部署HJOB模块,通过所述HJOB模块与灾备机交互生成文件状态主表,在接收到备份指令时,根据文件状态主表生成待备份文件状态列表filelist.seq,并划分MAPPER任务以保持HADOOP集群的负载均衡,启动MAPPER任务运行,通过MAPPER任务根据输入的待备份文件状态列表中的文件项,向灾备机发送相应的备份文件;接收到恢复指令时,根据所述文件状态主表生成待恢复文件状态列表recovery.seq,并划分MAPPER任务以保持HADOOP集群的负载均衡,启动MAPPER任务运行,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后通过第一File模块写入HDFS源文件。本发明中,HJOB模块只需在集群中任意节点部署一次即可,因为在MAPPER分发时会自动拷贝jar包到执行mapreduce运算的节点。需说明的是,所述备份指令与恢复指令均由控制机发送给灾备机的Node模块,再由Node模块发送给所述HJOB模块。
也就是说,HADOOP集群中任意节点部署HJOB模块,该HJOB模块为Hadoop的任务程序,该HJOB模块和灾备机交互,生成文件状态列表(即待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq)提供输入给MAPPER,并划分MAPPER任务,保持HADOOP集群的负载均衡,这个文件状态列表是HJOB模块获取大数据文件状态之后与生成在灾备机的文件状态主表进行对比(最新修改时间或者文件MD5值)产生的需要更新的一个文件列表,这个更新代表了备份或者恢复,具体地,所述HJob模块进一步包括:
文件状态主表生成模块101,用于通过第一Net模块与灾备机交互获取文件状态主表,所述文件状态主表保存的是上一次备份的文件状态,其保存在灾备机的sqlite数据库中。也就是说,在备份时,HJob模块会根据HDFS文件系统的API获取所有待备份文件的对象,取得相应文件编号、路径、最新修改日期、大小、文件MD5值等一些具体文件信息发送给灾备机20,从而生成文件状态主表,保存在灾备机数据库DB(灾备机安装的sqlite数据库)中,而在每次备份之前,文件状态主表生成模块101通过第一Net模块获取到文件状态主表。
文件状态列表生成模块102,用于在接收到备份/恢复指令时,将需要备份或恢复的目录中的文件跟来自灾备机的文件状态主表进行对比(增量备份与恢复只对变化的文件进行备份/恢复)生成待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq,该待备份文件状态列表filelist.seq中包含待备份文件列表,该待恢复文件状态列表recovery.seq中包括待恢复文件列表。当然,当接收到的指令为全备指令时,则无需对比,直接生成待备份文件状态列表filelist.seq即可。
具体地说,当用户通过控制机下发了备份/恢复指令(备份/恢复指令由控制机下发给灾备机Node模块,由灾备机Node模块再发给Hjob模块),HJob模块接收到该备份或恢复指令时,其文件状态列表生成单元102则根据该备份或恢复指令将需要备份或恢复的目录中的文件跟DB中的文件状态主表进行对比生成待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq。
MAPPER启动模块103,用于根据待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq对待备份文件或待恢复文件划分MAPPER任务,启动MAPPER。
具体地说,启动MAPPER任务,MAPPER任务的输入为待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq,文件项即是一个单个HDFS文件,具体信息有文件编号、路径、最新修改日期、大小、文件MD5值等,对该文本文件每行(即表示一个待备份或待恢复文件)进行split划分,一个文件对应一个MAPPER任务进行数据传输,即一行对应的HDFS文件对应一个MAPPER任务。
第一File模块104,用于文件的管理和存取,用于在Mapper任务的控制下获取待备份文件的文件流通过第一Net模块发送给灾备机;当通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据写入HDFS源文件。
文件读取指令发送模块105,用于通过MAPPER任务向灾备机发送文件读取指令。也就是说,当对待恢复文件状态列表recovery.seq根据文本行进行划分并启动Mapper任务后,Mapper通过第一Net模块发送给灾备机文件读取指令,所述文件读取指令包括但不限于规则uuid,以及文件编号、路径、最新修改日期、大小、文件MD5值等具体信息,所述规则uuid为控制机管理大数据备份的唯一id,由控制机生成规则时下发给灾备机,与其他信息一起保存在recovery.seq文件中。
第一Net模块105,用于实现HADOOP集群节点10与灾备机20的网络传输。在本发明具体实施例中,Net模块实现了BIO传输及NIO传输,NIO的实现,是为了解决大型HADOOP集群环境下的数据备份,备端数据接收的问题。
灾备机20,部署Node模块,于接收到HADOOP集群节点10传输的待备份文件的文件流数据后,通过第二File模块处理文件流写入灾备机;于接收到文件读取指令时,通过第二File模块读取文件流并通过第二Net模块发送给HADOOP集群节点10。
具体地,灾备机20进一步包括:
Node模块201,用于提供灾备机的入口,接收HADOOP集群节点10传输的待备份文件的文件流数据,并于接收到文件读取指令时,启动第二File模块读取相应的文件流,以通过第二Net模块发送至HADOOP集群节点10。
在本发明具体实施例中,Node模块201是启动灾备机的入口,也集成了与控制机交互的RPC框架以及TIMER定时任务框架,负责与控制机交互,接收控制机的备份/恢复指令,并通过定时任务向HADOOP集群节点10的HJOB模块发送备份/恢复指令。
第二File模块202,用于接收来自HADOOP集群节点10通过MAPPER任务发送的文件数据,调用Data模块204查询灾备机磁盘状态,根据查询结果写入灾备机;在Node模块201接收到文件读取指令时,根据文件读取指令调用Data模块查询备份文件状态,读取相应的文件流,并通过第二Net模块发送至HADOOP集群节点10。
在本发明具体实施例中,第二File模块202在接收到HADOOP集群节点10传输的待备份文件的文件流时,调用Data模块204,通过Data模块204检查灾备机磁盘的空闲空间大小,根据查询结果将接收的文件数据写入灾备机磁盘,在备份恢复时,第二File模块202则根据文件读取指令提取灾备机的备份文件内容向HADOOP集群节点10dMAPPER发送。
第二Net模块203,用于实现HADOOP集群节点10与灾备机20的网络传输。同样,这里的Net模块实现了BIO传输及NIO传输,NIO的实现,是为了解决大型HADOOP集群环境下的数据备份,备端数据接收的问题。
Data模块204,用于记录灾备机磁盘空间状态、备份文件状态以及备份记录。
在本发明中,Data模块204定义了数据对象,并提供了对灾备机数据库的访问,Data模块利用MyBatis作为数据库访问的基础框架。在本发明具体实施例中,Data模块主要操作三种数据:灾备机磁盘数据、备份历史记录以及文件状态数据。第二File模块写入或读取时会调用该模块,即备份之前注册数据节点和检查文件会调用,备份完成后写入备份历史记录;恢复之前也会调用该模块调用备份历史记录,和检查文件状态。
可见,本发明中的灾备机并不是HDFS,其主要利用了JAVA语言跨平台特性,因此只要可以运行JAVA虚拟机,便可将文件备份到该系统上,也就是说,本发明基于分布式拷贝DistCp实现了大数据集群到任意可以运行JAVA虚拟机的灾备机的备份。
控制机30,用于与灾备机的Node模块交互,提供灾备机的注册,向灾备机下发备份规则。在本发明中,控制机30与HADOOP集群节点之间不会直接交互,控制机30通过与Node模块间接交互,发送备份与恢复指令。
在本发明具体实施例中,控制机提供各灾备机的注册,提供大数据备份发起的web页面,通过该web页面向各灾备机下发备份规则。
图2为本发明一种基于分布式拷贝的大数据备份方法的步骤流程图。如图2所示,本发明一种基于分布式拷贝的大数据备份方法,包括如下步骤:
步骤S1,于HADOOP集群节点上部署HJOB模块,通过所述HJOB模块与灾备机主节点交互获取文件状态主表。
具体地,在HADOOP集群中任意节点部署HJOB模块,该HJOB模块为Hadoop的任务程序,该HJOB模块和灾备机交互,生成文件状态列表(即待备份文件状态列表filelist.seq或待恢复文件状态列表recovery.seq)以提供输入给MAPPER,并划分MAPPER任务,保持HADOOP集群的负载均衡,这个文件状态列表是HJOB模块获取大数据文件状态之后与生成在灾备机的文件状态主表进行对比(最新修改时间或者文件MD5值)产生的需要更新的一个文件列表,这个更新代表了备份或者恢复。
在备份时,HADOOP集群节点上的HJOB模块会根据HDFS文件系统的API获取所有待备份文件的对象、取得相应文件编号、路径、最新修改日期、大小、文件MD5值等一些具体文件信息发送给灾备机并插入生成文件状态主表,而在每次备份之前,则通过第一Net模块从灾备机获取到文件状态主表。
步骤S2,当接收到备份指令时,HJOB模块根据所述文件状态主表生成待备份文件状态filelist.seq,并对待备份文件状态列表filelist.seq进行划分以划分Mapper任务,启动Mapper任务运行,通过MAPPER任务根据输入的待备份文件的文件状态列表中的文件项,向灾备机发送相应的备份文件。
具体地,步骤S2进一步包括:
步骤S200,在接收到备份指令时,将需要备份的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待备份文件状态列表filelist.seq,该待备份文件状态列表filelist.seq中包含待备份文件列表。
步骤S201,对待备份文件划分Mapper任务,启动Mapper任务。
具体地说,启动Mapper任务,Mapper任务的输入为待备份文件状态列表filelist.seq,文件项即是一个单个HDFS文件,具体信息有文件编号、路径、最新修改日期、大小、文件MD5值等,对该文本文件每行进行split划分,一个文件对应一个mapper任务进行数据传输,即一行对应的HDFS文件对应一个MAPPER任务。
步骤S202,在Mapper任务的控制下获取待备份文件的文件流通过第一Net模块发送给灾备机,即根据输入的待备份文件的文件状态列表中的文件项,向灾备机发送相应的备份文件。
步骤S3,当接收到恢复指令时,HJOB模块将需要恢复的目录中的文件与从灾备机获取的文件状态主表进行对比生成待恢复文件状态列表recovery.seq,并对待恢复文件状态列表recovery.seq进行划分以划分Mapper任务,启动Mapper任务运行,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后通过第一File模块写入HDFS源文件。
具体地,步骤S3进一步包括:
步骤S300,在接收到备份恢复指令时,将需要恢复的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待恢复文件状态列表recovery.seq,该待恢复文件状态列表recovery.seq中包含待恢复文件。
步骤S301,对待恢复文件划分Mapper任务,启动Mapper任务。
具体地说,启动Mapper任务,Mapper任务的输入为待备份文件状态列表filelist.seq,文件项即是一个单个HDFS文件,具体信息有文件编号、路径、最新修改日期、大小、文件MD5值等,对该文本文件每行进行split划分,一个文件对应一个mapper任务进行数据传输。
步骤S302,通过Mapper任务向灾备机发送文件读取指令。
也就是说,当对待恢复文件状态列表recovery.seq根据文本行进行划分并启动Mapper任务后,Mapper通过第一Net模块向灾备机发送文件读取指令。
步骤S303,当Hjob模块通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据通过第一File模块写入HDFS源文件。
实施例
首先需要在大数据平台的HADOOP集群节点部署代理程序(HJOB模块),其次灾备机安装I2NODE节点包并执行,安装执行备份主程序(NODE模块),最后在控制机注册灾备机节点,在大数据菜单下下发备份规则。
图3为本发明实施例中基于分布式拷贝的大数据备份与恢复的流程图。如图3所示,备份时,Hjob模块接收到备份指令后,先把需要备份的目录中的文件跟从灾备机获取的灾备机数据库DB(灾备机安装的sqlite数据库)的文件状态主表做对比生成一个待备份文件状态列表filelist.seq,这个文件中包含所需备份文件列表。然后启动Mapper任务,该待备份文件状态列表filelist.seq就是Mapper任务的输入,对待备份文件状态列表filelist.seq的文件项根据文本行进行split,一个mapper只处理一个文件的传输。Mapper中先使用第一File模块获取到备份文件的文件流,再通过第一Net模块发送给灾备机的Node模块,也就是灾备机。Node模块接收到传输的文件数据之后,通过第二File模块处理文件流写入灾备机硬盘,至此备份流程结束。
恢复时,Hjob模块接收到恢复指令后,先把需要恢复的目录中的文件跟从灾备机获取的灾备机数据库DB(灾备机安装的sqlite数据库)中的文件状态主表做对比生成一个待恢复文件状态列表recovery.seq,这个文件中包含所需恢复文件。然后启动Mapper任务,该待恢复文件状态列表recovery.seq就是Mapper任务的输入,对待恢复文件状态列表recovery.seq的文件项根据文本行进行split,一个mapper只处理一个文件的传输,Mapper中先通过第一Net模块发送给灾备机的Node模块文件读取指令,Node模块接收到文件读取指令之后,通过第二File模块读取文件流并通过第二Net模块发送给Hjob模块,Hjob模块接收到文件数据通过第一File模块写入HDFS源文件,至此备份流程结束。
可见本发明基于对分布式拷贝DistCp进行改造实现,兼有分布式拷贝DistCp的分布式拷贝特性,源数据都是源于HDFS,不同于分布式拷贝DistCp的关键点则是数据备份的目标文件系统,分布式拷贝DistCp的目标文件系统只能是HDFS,但本发明的目标文件系统可以是linux,windows等可以运行JAVA虚拟机的任意基础OS的文件系统,并且利用HDFS的快照功能,在不影响基于HDFS的应用业务运行的前提下进行大数据HDFS备份任务。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (10)

1.一种基于分布式拷贝的大数据备份系统,包括:
HADOOP集群,部署HJOB模块,通过所述HJOB模块与灾备机交互获取文件状态主表,在接收到备份指令时,根据文件状态主表生成待备份文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,通过MAPPER任务根据输入的待备份文件状态列表中的文件项,向灾备机发送相应的备份文件;接收到恢复指令时,根据所述文件状态主表生成待恢复文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后写入HDFS源文件;
灾备机,部署Node模块,于接收到所述HADOOP集群节点传输的待备份文件的文件流数据后,通过第二File模块处理文件流写入灾备机;于接收到文件读取指令时,通过第二File模块读取文件流并发送给所述HADOOP集群节点。
2.如权利要求1所述的一种基于分布式拷贝的大数据备份系统,其特征在于,所述HJOB模块进一步包括:
文件状态主表获取模块,用于通过第一Net模块与灾备机交互获取文件状态主表;
文件状态列表生成模块,用于在接收到备份/恢复指令时,将需要备份/恢复的目录中的文件跟获取的文件状态主表进行对比生成待备份文件状态列表/待恢复文件状态列表;
MAPPER启动模块,用于根据待备份文件状态列表/待恢复文件状态列表对待备份/待恢复文件划分MAPPER任务,启动MAPPER任务;
第一File模块,用于在Mapper任务的控制下获取待备份文件的文件流通过第一Net模块发送给灾备机;当通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据写入HDFS源文件;
文件读取指令发送模块,用于通过MAPPER任务向灾备机发送文件读取指令;
第一Net模块,用于实现所述HADOOP集群节点与灾备机的网络传输。
3.如权利要求2所述的一种基于分布式拷贝的大数据备份系统,其特征在于:所述MAPPER启动模块对待备份/待恢复文件按文本行进行划分,一行代表一个文件,一个文件对应一个mapper任务进行数据传输。
4.如权利要求3所述的一种基于分布式拷贝的大数据备份系统,其特征在于,所述灾备机进一步包括:
Node模块,用于提供灾备机的入口,接收HADOOP集群节点传输的待备份文件的文件流数据,并于接收到文件读取指令时,启动第二File模块读取相应的文件流,以通过第二Net模块发送至HADOOP集群节点;
第二File模块,用于在所述Node模块接收到HADOOP集群节点传输的待备份文件的文件流时,查询灾备机磁盘状态,根据查询结果写入灾备机;在所述Node模块接收到文件读取指令时,根据文件读取指令读取相应的文件流,并通过第二Net模块发送至HADOOP集群节点;
第二Net模块,用于实现所述HADOOP集群节点与灾备机的网络传输;
Data模块,用于记录磁盘空间、备份文件状态以及备份记录。
5.如权利要求4所述的一种基于分布式拷贝的大数据备份系统,其特征在于:所述Node模块集成了与控制机交互的RPC框架以及TIMER定时任务框架,通过定时任务向所述HADOOP集群节点的HJOB模块发送备份恢复指令。
6.如权利要求5所述的一种基于分布式拷贝的大数据备份系统,其特征在于:所述第二File模块在接收到所述HADOOP集群节点传输的待备份文件的文件流时,调用所述Data模块,通过所述Data模块检查灾备机磁盘的空闲空间大小,根据查询结果将接收的文件数据写入灾备机磁盘。
7.如权利要求6所述的一种基于分布式拷贝的大数据备份系统,其特征在于:所述系统还包括控制机,用于与所述灾备机的Node模块交互,提供各灾备机数据节点的注册,向各灾备机数据节点下发备份规则。
8.一种基于分布式拷贝的大数据备份方法,包括如下步骤:
步骤S1,于HADOOP集群节点上部署HJOB模块,通过所述HJOB模块与灾备机主节点交互获取文件状态主表;
步骤S2,当接收到备份指令时,HJOB模块根据所述文件状态主表生成待备份文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,通过MAPPER任务根据输入的待备份文件状态列表中的文件项,向灾备机发送相应的备份文件;
步骤S3,当接收到恢复指令时,HJOB模块根据所述文件状态主表生成待恢复文件状态列表,启动并划分MAPPER任务以保持HADOOP集群的负载均衡,向灾备机发送文件读取指令,并于接收到灾备机发送的文件数据后写入HDFS源文件。
9.如权利要求8所述的一种基于分布式拷贝的大数据备份方法,其特征在于,步骤S2进一步包括:
步骤S200,在接收到备份指令时,将需要备份的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待备份文件状态列表;
步骤S201,对待备份文件划分Mapper任务,启动Mapper任务;
步骤S202,在Mapper任务的控制下根据输入的待备份文件状态列表中的文件项,向灾备机数据节点发送相应的备份文件。
10.如权利要求9所述的一种基于分布式拷贝的大数据备份方法,其特征在于,步骤S3进一步包括:
步骤S300,在接收到备份恢复指令时,将需要恢复的目录中的文件跟从灾备机获取的文件状态主表进行对比生成待恢复文件状态列表;
步骤S301,对所述待恢复文件状态列表的待恢复文件划分Mapper任务,启动Mapper任务;
步骤S302,通过Mapper任务向灾备机发送文件读取指令;
步骤S303,当HJOB模块通过第一Net模块接收到灾备机发送的文件数据后,将接收的文件数据通过第一File模块写入HDFS源文件。
CN202111224865.2A 2021-10-21 2021-10-21 一种基于分布式拷贝的大数据备份系统及方法 Pending CN113934575A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111224865.2A CN113934575A (zh) 2021-10-21 2021-10-21 一种基于分布式拷贝的大数据备份系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111224865.2A CN113934575A (zh) 2021-10-21 2021-10-21 一种基于分布式拷贝的大数据备份系统及方法

Publications (1)

Publication Number Publication Date
CN113934575A true CN113934575A (zh) 2022-01-14

Family

ID=79281046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111224865.2A Pending CN113934575A (zh) 2021-10-21 2021-10-21 一种基于分布式拷贝的大数据备份系统及方法

Country Status (1)

Country Link
CN (1) CN113934575A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422509A (zh) * 2022-04-01 2022-04-29 天津联想协同科技有限公司 文件自动备份方法、装置、网盘及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114422509A (zh) * 2022-04-01 2022-04-29 天津联想协同科技有限公司 文件自动备份方法、装置、网盘及存储介质
CN114422509B (zh) * 2022-04-01 2022-07-26 天津联想协同科技有限公司 文件自动备份方法、装置、网盘及存储介质

Similar Documents

Publication Publication Date Title
US10310949B1 (en) Disaster restore of big data application with near zero RTO
US5805897A (en) System and method for remote software configuration and distribution
KR101970839B1 (ko) 서비스의 2차 위치에서의 작업의 재생 기법
US10152387B1 (en) Instant start of virtual machine from archive copy on backup media
KR100423687B1 (ko) 소결합 노드 클러스터에서의 공유 디스크 파일 시스템용데이터 관리 응용 프로그램의 연속 수행 페일오버
US7610314B2 (en) Online tablespace recovery for export
US11860741B2 (en) Continuous data protection
US20190114231A1 (en) Image restore from incremental backup
JP2007518195A (ja) リモートデータミラーリングを用いたクラスタデータベース
US7069270B1 (en) Automated method and mechanism for converting a single instance application to a multiple instance application
US7127480B2 (en) System, method and program for backing up a computer program
KR101024249B1 (ko) 실시간 데이터 복제 시스템
US20220398163A1 (en) High frequency snapshot technique for improving data replication in disaster recovery environment
CN113934575A (zh) 一种基于分布式拷贝的大数据备份系统及方法
US20100185582A1 (en) Web Deployment Functions and Interfaces
US11079960B2 (en) Object storage system with priority meta object replication
US11042454B1 (en) Restoration of a data source
CN112243030A (zh) 分布式存储系统的数据同步方法、装置、设备及介质
JP2008310591A (ja) クラスタシステム、計算機、および障害回復方法
US9355117B1 (en) Techniques for backing up replicated data
CN115292408A (zh) MySQL数据库的主从同步方法、装置、设备及介质
CN114281600A (zh) 一种容灾备份和容灾恢复方法、装置、设备及存储介质
US11093465B2 (en) Object storage system with versioned meta objects
CN112181729A (zh) 一种虚拟机备份控制装置、系统及方法
US20200401312A1 (en) Object Storage System with Meta Object Replication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination