CN106372221B - 一种文件同步的方法、设备及系统 - Google Patents
一种文件同步的方法、设备及系统 Download PDFInfo
- Publication number
- CN106372221B CN106372221B CN201610807917.1A CN201610807917A CN106372221B CN 106372221 B CN106372221 B CN 106372221B CN 201610807917 A CN201610807917 A CN 201610807917A CN 106372221 B CN106372221 B CN 106372221B
- Authority
- CN
- China
- Prior art keywords
- file
- information
- equipment
- hdfs
- host node
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Abstract
本发明公开了一种文件同步的方法,该方法包括:复制管理设备向第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号;接收第一HDFS集群的主节点发送的待同步文件的信息,该待同步文件的信息是第一HDFS集群的主节点确定的与目录结束操作编号接续的目录操作编号所对应文件的信息;根据该待同步文件的信息,确定目标同步任务,目标复制执行设备根据目标同步任务中的至少一个文件的信息,将该至少一个文件从源数据节点同步到目的数据节点。本发明实施例还提供相应的设备及系统。本发明实施例提供的方案不需要扫描整个文件目录,从而提高了文件同步的效率。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种文件同步的方法、设备及系统。
背景技术
Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是高度容错的系统,能提供高吞吐量的数据访问,适合部署大数据业务。
HDFS可以包括多个HDFS集群,HDFS集群的布局采用主从结构,一个HDFS集群是包括一个主节点(NameNode,NN)和若干个数据节点(DataNode,DN),主节点负责管理该HDFS集群的元数据,例如:管理该集群所存储文件的信息。数据节点负责存储文件。
在当前大数据的环境下,数据的同步特别是跨地域跨集群的数据同步变得越来越重要,拥有很广阔的应用需求。
目前HDFS集群的文件同步采用的是Hadoop提供的分布式复制(Distributcopy,Distcp)方案,Distcp是用于大规模集群内部或集群之间文件同步的工具。Distcp使用映射/归约(Map/Reduce)实现文件同步,也就是通从源数据节点-Map/Reduce节点-目的数据节点的文件同步过程。目前的Distcp存在Distcp1与Distcp2两个版本。
Distcp1的操作过程是扫描整个目录,生成目录列表,然后根据目录列表中的文件名称以及文件大小,进行切分,切分为若干个碎片(splits),一个map任务对应一个split,每个split是一个包含若干文件的文件列表,启动具有map任务的Map/Reduce节点进行复制,每个map任务负责同步一个split中的所有文件。
Distcp2是在Distcp1基础上进行的改进,但仍需扫描整个目录,才能生成目录列表。
以上,Distcp1Distcp2的复制方案都需要扫描整个目录,导致文件同步效率低下。
发明内容
为解决现有技术中HDFS集群文件同步效率低下的问题,本发明实施例提供一种文件同步的方法,可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。本发明实施例还提供了相应的设备及系统。
本发明第一方面提供一种文件同步的方法,该方法应用于Hadoop分布式文件系统HDFS,该HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息,该多个HDFS集群包括第一HDFS集群,该方法包括:复制管理设备向第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号;复制管理设备接收第一HDFS集群的主节点发送的待同步文件的信息,该待同步文件的信息是第一HDFS集群的主节点确定的与目录结束操作编号接续的目录操作编号所对应文件的信息;复制管理设备根据该待同步文件的信息,确定至少一个同步任务,其中,每个同步任务包含该待同步文件中至少一个文件的信息;复制管理设备接收目标复制执行设备发送的任务请求后,向目标复制执行设备发送目标同步任务,该目标同步任务用于目标复制执行设备根据目标同步任务中的至少一个文件的信息,将该至少一个文件从源数据节点同步到目的数据节点,源数据节点属于第一HDFS集群。其中,文件同步可以是周期性进行的,可以是一个周期同步一次,周期长度可以预先设定,本次同步是以紧相邻的前一次同步为基础的,前一次和本次指的是周期上连续的两次。目录结束操作编号可以是前一次同步的目标编号中最大的目录操作编号。接续指的是顺序上能衔接上,如:从小到大的衔接,目录结束操作编号是123,接续的目录操作编号是124,而且,接续的目录操作编号不限于一个,可以有多个,有一个与目录结束操作编号衔接的比结束操作编号大的所有操作编号都可以是与目录结束操作编号接续的目录操作编号。如:124、125和126等都是与123接续的目录操作编号。待同步文件中包括至少一个文件。目标复制执行设备是至少一个复制执行设备中的一个,目标同步任务是至少一个同步任务中的一个。从上述第一方面可以看出,本次同步可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。
结合第一方面,在第一种可能的实现方式中,本发明提供的文件同步的方法还包括:该多个HDFS集群还包括第二HDFS集群,目的数据节点属于第二HDFS集群;至少一个文件的信息与存储该至少一个文件的源数据块的地址信息对应;该至少一个文件的信息用于目标复制执行设备从第一HDFS集群的主节点获取与该至少一个文件的信息对应的源数据块的地址信息,源数据块的地址信息用于目标复制执行设备确定源数据块的数量,源数据块的数量用于目标复制执行设备从第二HDFS集群的主节点获取目的数据块的地址信息,目的数据块的地址信息是第二HDFS集群的主节点根据源数据块的数量为至少一个文件分配的,源数据块的地址信息和目的数据块的地址信息用于目标复制执行设备指示所述源数据节点将至少一个文件从源数据块同步到目的数据块。从上述第一方面第一种可能的实现方式中可以看出,文件同步可以是跨集群的,采用依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息的方式进行文件同步,提高了集群间文件同步的效率。
本发明第二方面提供一种文件同步的方法,该方法应用于Hadoop分布式文件系统HDFS,该HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中该至少两个数据节点所存储文件的信息,该多个HDFS集群包括第一HDFS集群,该方法包括:复制执行设备接收复制管理设备发送的目标同步任务,该目标同步任务是复制管理设备根据待同步文件的信息确定的至少一个同步任务中的一个,其中,每个同步任务包含待同步文件中至少一个文件的信息,待同步文件的信息是复制管理设备向第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号后,由第一HDFS集群的主节点所确定的与所述目录结束操作编号接续的目录操作编号所对应文件的信息;复制执行设备根据目标同步任务中的至少一个文件的信息,将至少一个文件从源数据节点同步到目的数据节点,源数据节点属于所述第一HDFS集群。从上述第二方面可以看出,本次同步可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。
结合第二方面,在第一种可能的实现方式中,该多个HDFS集群包括第二HDFS集群,目的数据节点属于所述第二HDFS集群;至少一个文件的信息与存储该至少一个文件的源数据块的地址信息对应;其中,第二方面中的步骤:复制执行设备根据目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,包括:目标复制执行设备根据至少一个文件的信息从第一HDFS集群的主节点获取与至少一个文件的信息对应的源数据块的地址信息;目标复制执行设备根据源数据块的地址信息,确定源数据块的数量;目标复制执行设备根据源数据块的数量从第二HDFS集群的主节点获取目的数据块的地址信息,目的数据块的地址信息是第二HDFS集群的主节点根据源数据块的数量为至少一个文件分配的;目标复制执行设备向源数据节点发送同步指示消息,该同步指示消息包含源数据块的地址信息和目的数据块的地址信息,源数据块的地址信息和目的数据块的地址信息用于源数据节点将至少一个文件从源数据块同步到目的数据块。从上述第二方面第一种可能的实现方式中可以看出,文件同步可以是跨集群的,采用依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息的方式进行文件同步,提高了集群间文件同步的效率。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,第二方面第一种可能的实现方式中的步骤:复制执行设备向源数据节点发送同步指示消息,包括:当所述源数据块的地址信息指示所述源数据块有多个时,复制执行设备针对每个源数据块向源数据节点并行发送所述同步指示消息。从上述第二方面第二种可能的实现方式中可以看出,同步指示消息可以只针对每个源数据块并行发送的,文件可以并行同步,从而进一步提高了文件同步的效率。
本发明第三方面提供一种文件同步的方法,该方法应用于Hadoop分布式文件系统HDFS,该HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息,多个HDFS集群包括第一HDFS集群,当主节点属于所述第一HDFS集群时,该方法包括:主节点接收所述复制管理设备发送的前一次所同步数据文件的目录结束操作编号;主节点从文件的目录操作编号中确定与目录结束操作编号接续的目录操作编号,并确定所述接续的目录操作编号所对应的待同步文件的信息;主节点向复制管理设备发送待同步文件的信息,待同步文件的信息用于复制管理设备确定至少一个同步任务,其中,每个同步任务包含待同步文件中至少一个文件的信息,至少一个文件的信息用于目标复制执行设备将至少一个文件从源数据节点同步到目的数据节点,源数据节点属于第一HDFS集群。从上述第三方面可以看出,本次同步可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。
结合第三方面,在第一种可能的实现方式中,至少一个文件的信息与存储该至少一个文件的源数据块的地址信息对应;上述第三方面中的步骤:主节点向所述复制管理设备发送所述待同步文件的信息之后,该方法还包括:主节点接收目标复制执行设备发送的至少一个文件的信息;主节点确定与至少一个文件的信息对应的源数据块的地址信息;主节点向目标复制执行设备发送源数据块的地址信息,源数据块的地址信息用于目标复制执行设备确定源数据块的数量。从上述第三方面第一种可能的实现方式中可以看出,主节点可以确定出源数据块的地址信息,从而使目标复制执行设备可以针对每个源数据块并行向源数据节点发送同步指示消息,文件可以并行同步,从而进一步提高了文件同步的效率。
结合第三方面,在第二种可能的实现方式中,该多个HDFS集群还包括第二HDFS集群,目的数据节点属于第二HDFS集群,当主节点属于第二HDFS集群时,该方法还包括:主节点接收目标复制执行设备发送的源数据块的数量;主节点根据源数据块的数量为至少一个文件创建目的数据块,并为目的数据块分配地址信息;主节点向目标复制执行设备发送目的数据块的地址信息,源数据块的地址信息和目的数据块的地址信息用于所述目标复制执行设备指示所述源数据节点将至少一个文件从源数据块同步到目的数据块。从上述第三方面第二种可能的实现方式中可以看出,主节点可以为依据源数据块的数量直接创建出相应数量的目的数据块,不需要逐个创建,从而进一步提高了文件同步的效率。
本发明第四方面提供一种文件同步的方法,该方法应用于Hadoop分布式文件系统HDFS,该HDFS包括复制管理设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息,该多个HDFS集群包括第一HDFS集群,该方法包括:复制管理设备向第一HDFS集群中的主节点发送同步消息,该同步消息用于指示该第一HDFS集群中的主节点扫描文件目录,生成当前该第一HDFS集群中的主节点中所维护的文件信息的列表;该复制管理设备接收该列表后,通过与前一次所同步文件的列表进行比对,确定待同步文件的信息,该复制管理设备向源数据节点发送同步任务,该同步任务用于指示源数据节点将该待同步文件直接同步到目的数据节点。待同步文件可以分布在多个源数据块上,该同步可以是并行进行的,可以是源数据节点并行将各源数据块上的文件同步到目的数据节点的目的数据块上。从上述第四方面可以看出,本次同步是由源数据节点将待同步文件直接同步到目的数据节点,不需要由复制管理设备中转,缩减了文件同步的路径,提高了文件同步的效率。而且,文件同步可以是依据数据块并行进行,进一步提高了文件同步的效率。
本发明第五方面提供一种文件同步的装置,该处理装置被配置实现上述第一方面或第一方面任一可选的实现方式所提供的方法的功能,由软件实现,其软件包括与上述功能相应的单元,与上述功能相应的单元可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元通信连接,接收单元用于实现相应接收的功能,发送单元用于实现相应发送的功能,处理单元用于实现相应处理的功能。
本发明第六方面提供一种文件同步的装置,该处理装置被配置实现上述第二方面或第二方面任一可选的实现方式所提供的方法的功能,由软件实现,其软件包括与上述功能相应的单元,与上述功能相应的单元可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元通信连接,接收单元用于实现相应接收的功能,发送单元用于实现相应发送的功能,处理单元用于实现相应处理的功能。
本发明第七方面提供一种文件同步的装置,该处理装置被配置实现上述第三方面或第三方面任一可选的实现方式所提供的方法的功能,由软件实现,其软件包括与上述功能相应的单元,与上述功能相应的单元可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元通信连接,接收单元用于实现相应接收的功能,发送单元用于实现相应发送的功能,处理单元用于实现相应处理的功能。
本发明第八方面提供一种文件同步的装置,该处理装置被配置实现上述第四方面所提供的方法的功能,由软件实现,其软件包括与上述功能相应的单元,与上述功能相应的单元可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元通信连接,接收单元用于实现相应接收的功能,发送单元用于实现相应发送的功能,处理单元用于实现相应处理的功能。
本发明第九方面提供一种复制管理设备,该复制管理设备被配置实现上述第一方面或第一方面任一可选的实现方式所提供的方法的功能,由硬件实现,其硬件包括与上述功能相应的器件,与上述功能相应的器件可以包括收发器、处理器和存储器,该收发器、所述处理器和所述存储器通过总线连接,存储器用于存储处理器执行文件同步的程序,收发器用于实现相应的收发功能,处理器用于实现相应的处理功能。
本发明第十方面提供一种复制执行设备,该复制执行设备被配置实现上述第二方面或第二方面任一可选的实现方式所提供的方法的功能,由硬件实现,其硬件包括与上述功能相应的器件,与上述功能相应的器件可以包括收发器、处理器和存储器,该收发器、所述处理器和所述存储器通过总线连接,存储器用于存储处理器执行文件同步的程序,收发器用于实现相应的收发功能,处理器用于实现相应的处理功能。
本发明第十一方面提供一种主节点,该主节点被配置实现上述第三方面或第三方面任一可选的实现方式所提供的方法的功能,由硬件实现,其硬件包括与上述功能相应的器件,与上述功能相应的器件可以包括收发器、处理器和存储器,该收发器、所述处理器和所述存储器通过总线连接,存储器用于存储处理器执行文件同步的程序,收发器用于实现相应的收发功能,处理器用于实现相应的处理功能。
本发明第十二方面提供一种复制管理设备,该复制管理设备被配置实现上述第四方面所提供的方法的功能,由硬件实现,其硬件包括与上述功能相应的器件,与上述功能相应的器件可以包括收发器、处理器和存储器,该收发器、所述处理器和所述存储器通过总线连接,存储器用于存储处理器执行文件同步的程序,收发器用于实现相应的收发功能,处理器用于实现相应的处理功能。
本发明第十三方面提供一种计算机存储介质,该计算机存储介质存储有上述第一方面或第一方面任一可选的实现方式的文件同步的程序。
本发明第十四方面提供一种计算机存储介质,该计算机存储介质存储有上述第二方面或第二方面任一可选的实现方式的文件同步的程序。
本发明第十五方面提供一种计算机存储介质,该计算机存储介质存储有上述第三方面或第三方面任一可选的实现方式的文件同步的程序。
本发明第十六方面提供一种计算机存储介质,该计算机存储介质存储有上述第四方面的文件同步的程序。
本发明第十七方面提供一种Hadoop分布式文件系统,包括:复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息,多个HDFS集群包括第一HDFS集群;复制管理设备为上述第五方面所描述的文件同步的装置;所述复制执行设备为上述第六方面所描述的文件同步的装置;主节点为上述第七方面所描述的文件同步的装置。
本发明第十八方面提供一种Hadoop分布式文件系统,包括:复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息,多个HDFS集群包括第一HDFS集群;复制管理设备为上述第十三方面所描述的复制管理设备;所述复制执行设备为上述第十四方面所描述的复制执行设备;主节点为上述第十五方面所描述的主节点。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是Hadoop分布式文件系统HDFS的一网络结构示意图;
图2是本发明实施例中Hadoop分布式文件系统HDFS的一网络结构示意图;
图3是本发明实施例中按照数据块进行并行同步的示例示意图;
图4是本发明实施例中Hadoop分布式文件系统HDFS的另一网络结构示意图;
图5是本发明实施例中文件同步的方法的一实施例示意图;
图6是本发明实施例中文件同步的方法的另一实施例示意图;
图7是本发明实施例中复制管理设备、复制执行设备或主节点以主机的形式存在的一结构示意图。
具体实施方式
本发明实施例提供一种文件同步的方法,可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。本发明实施例还提供了相应的设备及系统。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)的一网络结构示意图。
目前的HDFS通常包括映射/归约设备和多个HDFS集群,每个HDFS集群分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息。
如图1所示,HDFS包括映射/归约设备10、第一HDFS集群和第二HDFS集群,当然图1只是画出了第一HDFS集群和第二HDFS集群,但是不应理解为是对HDFS集群数量的限定。第一HDFS集群中包括主节点20A、数据节点30A和数据节点30B,第一HDFS集群中包括主节点20B、数据节点30C和数据节点30D,第一HDFS集群和第二HDFS集群都只画出了两个数据节点,但不应理解为是对HDFS集群中数据节点数量的限定。
目前HDFS中文件同步的过程是映射/归约设备10向第一HDFS集群中的主节点20A发送同步消息,该同步消息用于指示该第一HDFS集群中的主节点20A扫描文件目录,生成当前该第一HDFS集群中的主节点20A中所维护的文件信息的列表;该映射/归约设备10接收该列表后,通过与前一次所同步文件的列表进行比对,确定待同步文件的信息,然后映射/归约设备10根据该待同步文件的信息,确定待同步文件处于数据节点30B上,并根据待同步文件的信息确定需要将待同步文件同步到的目的数据节点为数据节点C,映射/归约设备10向数据节点30B发送待同步文件获取请求,数据节点30B根据该待同步文件获取请求向映射/归约设备10返回待同步文件,映射/归约设备10将该接收到的待同步文件发送给目的数据节点30C。从以上描述上可以确定目前的文件同步方案需要扫描整个目录,导致文件同步效率低下。
针对当前文件同步效率低下的问题,本发明实施例提供了一种Hadoop分布式文件系统。
本发明实施例提供的Hadoop分布式文件系统包括:复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,至少两个数据节点存储有文件,主节点维护有该集群中至少两个数据节点所存储文件的信息。
如图2所示,HDFS包括复制管理设备40、复制执行设备50、第一HDFS集群和第二HDFS集群,当然图2只是画出了第一HDFS集群和第二HDFS集群,但是不应理解为是对HDFS集群数量的限定。第一HDFS集群中包括主节点20A、数据节点30A和数据节点30B,第一HDFS集群中包括主节点20B、数据节点30C和数据节点30D,第一HDFS集群和第二HDFS集群都只画出了两个数据节点,但不应理解为是对HDFS集群中数据节点数量的限定。复制执行设备50也只画出了一个,但不应理解为是对复制执行设备数量的限定。
本发明实施例中由复制管理设备40来实现复制管理Replication Manager程序,由复制执行设备50来实现复制执行Replication Executor程序。实际上,ReplicationManager可以运行一台独立的设备上,也可以运行在用户设备、主节点或者数据节点上,在哪个设备上运行,就由哪个设备来充当本发明实施例中的复制管理设备40。ReplicationExecutor可以运行在数据节点上,由该数据节点来充当本发明实施例中的复制执行设备50,而且一个数据节点上可以运行多个Replication Executor程序。也就是说一个数据节点可以扮演多个复制执行设备50的角色。本处针对复制管理设备40和复制执行设备50在HDFS中的存在形态做了相应的解释性说明,但在做文件同步时不需要考虑复制管理设备40和复制执行设备50的存在形态,无论复制管理设备40和复制执行设备50的存在形态是什么,文件同步的过程都是相同的。
下面参阅图2介绍本发明实施例中文件同步的过程。
复制管理设备40向第一HDFS集群的主节点20A发送前一次所同步文件的目录结束操作编号。其中,文件同步可以是周期性进行的,可以是一个周期同步一次,周期长度可以预先设定,本次同步是以紧相邻的前一次同步为基础的,前一次和本次指的是周期上连续的两次。目录结束操作编号可以是前一次同步的目标编号中最大的目录操作编号。
主节点20A接收所述复制管理设备40发送的前一次所同步数据文件的目录结束操作编号后,主节点20A从文件的目录操作编号中确定与所述目录结束操作编号接续的目录操作编号,并确定所述接续的目录操作编号所对应的待同步文件的信息。接续指的是顺序上能衔接上,如:从小到大的衔接,目录结束操作编号是123,接续的目录操作编号是124,而且,接续的目录操作编号不限于一个,可以有多个,有一个与目录结束操作编号衔接的比结束操作编号大的所有操作编号都可以是与目录结束操作编号接续的目录操作编号。如:124、125和126等都是与123接续的目录操作编号。
在每个主节点中,针对每次操作都会产生一个目录操作编号,其中,操作的类型可以是新增、修改和删除等,无论哪种类型的操作主节点都会记录,并产生相应的目录操作编号,本发明实施例中的目录操作编号可以是按照从1开始逐个加1的方式记录的,当然还可以有其他的记录方式,只要是成固定趋势变化就可以,对具体的记录方式不做限定。
每个目录操作编号都会对应相应文件的信息,目录操作编号与文件的对应关系可以是多个目录操作编号对应一个文件。例如:编号从100至200对应一个文件,也可以是编号100-105、130-137对应一个文件,编号只是按照操作的先后顺序产生的,并不对应具体文件。但每个目录操作编号都会对应相应的文件的信息,该文件的信息中可以包含该文件所存储的源数据节点的标识,待同步到的目的数据节点的标识。例如:该文件的信息可以是fileA/fromDN30BtoDN30C,也就是将文件A从数据节点30B同步到数据节点30C。当然此处只是举例,该文件的信息可以用其他形式表示。
若目录结束操作编号为1200,则主节点可以确定前一次同步所同步文件的最大目录操作编号为1200,则可以确定编号1200之前的目录操作编号所对应的文件不需要再同步,本次同步只需要从1201开始即可,从1201开始的所有大于1200的目录操作编号都是在前一次发送所同步文件的信息后新产生的,因此,主节点可以确定出目录结束操作编号接续的目录操作编号,若当前的目录操作编号已到达1880,则主节点可以确定从1201到1880的所有目录操作编号都是新产生的,则接续的目录操作编号就是从1201-1880的所有目录操作编号,确定出接续的目录操作编号后,再确定出与每个接续的目录操作编号所对应的待同步文件的信息即可。待同步的文件可以有多个,针对每个待同步文件都会有相应的信息。然后,主节点20A向复制管理设备发送待同步文件的信息。
复制管理设备40接收第一HDFS集群的主节点20A发送的待同步文件的信息,复制管理设备40根据该待同步文件的信息,确定至少一个同步任务,其中,每个同步任务包含该待同步文件中至少一个文件的信息。通常同步任务划分是按照一个文件一个同步任务来划分的,若本次有三个待同步文件,则可以确定三个同步任务当然,也可以是一个同步任务中包括多个待同步文件。
复制管理设备40接收目标复制执行设备50发送的任务请求后,向目标复制执行设备发送目标同步任务。其中,目标复制执行设备50可以是多个复制执行设备中的一个,目标同步任务可以是多个同步任务中的一个。
目标复制执行设备50接收复制管理设备40发送的目标同步任务后,根据目标同步任务中的至少一个文件的信息,将至少一个文件从源数据节点30B同步到目的数据节点30C,源数据节点30B属于所述第一HDFS集群。
从上述描述可以看出,本次同步可以依据前一次同步的目录结束操作编号直接确定与该目录结束操作编号接续的目录操作编号所对应文件的信息,进而确定待同步文件的信息,对待同步文件进行同步,不需要扫描整个文件目录,从而提高了文件同步的效率。而且上述的同步方案中,可以是由源数据节点30B直接将待同步文件同步到目的数据节点30C,不需要经过目标复制执行设备中转,进一步提高了同步效率。
需要说明的是,待同步文件可以位于不同的数据节点中,本发明实施例中只是以只有一个源数据节点为例进行说明,实际上,源数据节点可能有多个,目的数据节点也可能有多个,不应将本发明实施例中途2所示的场景理解为是对源数据节点数量的限定。
图2所描述的过程是一个跨集群的文件同步过程,目的数据节点30C属于所述第二HDFS集群。实际上,上述文件同步过程可以应用于集群内文件同步,用于集群内文件同步时,不需要扫描整个文件目录,同样提高了文件同步的效率。
另外,主节点中还会存储有每个文件的大小和文件所在的数据块的相应信息。数据块的大小通常都是固定的,一般为64M或者128M,其中M表示兆的意思。数据块就是在存储资源中所划分出的用于存储数据的一块存储空间。每个数据块都有相应的地址信息。
因为每个同步任务中的至少一个文件的信息与存储该至少一个文件的源数据块的地址信息对应;所以,复制执行设备根据目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,可以包括:
目标复制执行设备50根据至少一个文件的信息从第一HDFS集群的主节点20A获取与至少一个文件的信息对应的源数据块的地址信息;
目标复制执行设备50根据源数据块的地址信息,确定源数据块的数量;
目标复制执行设备50向第二HDFS集群的主节点20B发送源数据块的数量。
第二HDFS集群的主节点20B根据源数据块的数量为至少一个文件创建目的数据块,并为目的数据块分配地址信息。
第二HDFS集群的主节点20B向目标复制执行设备发送目的数据块的地址信息。
目标复制执行设备50接收到目的数据块的地址信息后,向源数据节点30B发送同步指示消息,该同步指示消息包含源数据块的地址信息和目的数据块的地址信息。
源数据节点30B根据源数据块的地址信息和目的数据块的地址信息将至少一个文件从源数据块同步到目的数据块。
而且,其中,当所述源数据块的地址信息指示所述源数据块有多个时,复制执行设备针对每个源数据块向源数据节点并行发送所述同步指示消息。由源数据节点30B并向将源数据块中的文件内容同步到目的数据块。数据块中文件内容的并行同步过程可以参阅图3进行理解。如图3所示,源数据节点30B可以将每个源数据块中的文件内容并行同步到对应的目的数据块。由此可见,主节点可以依据源数据块的数量直接创建出相应数量的目的数据块,不需要逐个创建目的数据块,从而进一步提高了文件同步的效率。而且,可以实现源数据节点按照数据块进行并行同步,更进一步提高了文件同步的效率。而且,因本发明实施例中文件同步是直接从源数据节点同步到目的数据节点,不需要像现有技术中一定需要映射/归约设备10参与,一定需要一个map参与完成一次同步才能再接收下一个任务,如果该任务执行的慢就会造成长尾现象,而本发明实施例中,目标复制执行设备将同步任务发送给源数据节点会,源数据节点将待同步文件直接从源数据节点同步到目的数据节点,不需要目标复制执行设备再参与中转的过程,所以还进一步解决了现有技术中的长尾问题。
由图1至图2的变化对比中可以看出,本发明实施例中文件的同步路径由原来的需要映射/归约设备中转变成了由源数据节点直接到目的数据节点的同步,缩短了文件同步路径,提高了文件同步效率。
本发明实施例还提供了另一种Hadoop分布式文件系统的网络结构。如图4所示,若Hadoop分布式文件系统还采用图1所示的映射/归约设备10,还是要通过扫描文件整个目录才能确定待同步文件的信息,但是在文件同步略作了调整,映射/归约设备10可以指示源数据节点将待同步文件直接同步到目的数据节点,不再需要映射/归约设备10中转,也是可以提高文件同步效率的。
以上是参阅Hadoop分布式文件系统的网络结构图对文件同步过程的介绍,下面基于上述图2部分的网络架构,结合分布式文件系统中各设备的交互过程介绍本发明实施例中的文件同步的方法。
如图5所示,本发明实施例提供的文件同步的方法的一实施例包括:
601、复制管理设备向第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号。
602、主节点接收所述复制管理设备发送的前一次所同步数据文件的目录结束操作编号后,从文件的目录操作编号中确定与所述目录结束操作编号接续的目录操作编号,并确定所述接续的目录操作编号所对应的待同步文件的信息。
603、复制管理设备接收第一HDFS集群的主节点发送的待同步文件的信息。
604、复制管理设备根据该待同步文件的信息,确定至少一个同步任务。
605、复制管理设备接收目标复制执行设备发送的任务请求。
606、复制管理设备向目标复制执行设备发送目标同步任务。
607、目标复制执行设备接收复制管理设备发送的目标同步任务后,向源数据节点发送同步指示消息,该同步指示消息包含至少一个文件的信息,源数据节点属于所述第一HDFS集群。
608、源数据节点根据同步指示消息,将至少一个文件从源数据节点同步到目的数据节点。
以上步骤601至608是基于上述图2所示的Hadoop分布式文件系统的文件同步过程。步骤601至608中所涉及到的特征以及过程可以参阅图2部分的相应描述和示例进行理解,本处不再重复赘述。
以上所描述的文件同步的方法可以应用于HDFS集群内部,也可以应用于HDFS集群之间,下面结合图6介绍本发明实施例中文件同步的另一实施例。
如图6所示,本发明实施例提供的文件同步的另一实施例包括:
步骤701至706与上述实施例中的步骤601至606相同,可以参阅步骤601至606进行理解。
因主节点中还会存储有每个文件的大小和文件所在的数据块的相应信息。因为每个同步任务中的至少一个文件的信息与存储该至少一个文件的源数据块的地址信息对应。所以在步骤706之后还可以包括:
707、目标复制执行设备向第一集群的主节点发送至少一个文件的数据块的查询请求。
该至少一个文件是目标同步任务中所包含的至少一个文件的信息所指示的文件。
708、第一集群的主节点确定存储该至少一个文件的源数据块的地址信息。
709、第一集群的主节点向目标复制执行设备发送源数据块的地址信息。
710、目标复制执行设备根据源数据块的地址信息,确定源数据块的数量。
该步骤中,如果第一集群的主节点直接向目标复制执行设备返回了至少一个文件的大小,则可以根据至少一个文件的大小确定源数据块的数量。
711、目标复制执行设备向第二HDFS集群的主节点发送源数据块的数量。
712、第二HDFS集群的主节点根据源数据块的数量为至少一个文件创建目的数据块,并为目的数据块分配地址信息。
713、第二HDFS集群的主节点向目标复制执行设备发送目的数据块的地址信息。
714、目标复制执行设备接收到目的数据块的地址信息后,针对每个源数据块向源数据节点并行发送同步指示消息,该同步指示消息包含源数据块的地址信息和目的数据块的地址信息。
715、源数据节点根据源数据块的地址信息和目的数据块的地址信息将每个元数据块中所包含的至少一个文件的文件内容从源数据块同步到目的数据块。
针对数据块的并行同步过程可以参阅图3进行理解。
由此可见,本发明实施例提供的文件同步方案,不需要扫描整个文件目录,可以通过目录结束操作编号直接确定待同步文件的信息,提高了文件同步的效率,而且主节点可以依据源数据块的数量直接创建出相应数量的目的数据块,不需要逐个创建目的数据块,从而进一步提高了文件同步的效率。而且,可以实现源数据节点按照数据块进行并行同步,更进一步提高了文件同步的效率。而且,因本发明实施例中文件同步是直接从源数据节点同步到目的数据节点,不需要像现有技术中一定需要映射/归约设备10参与,一定需要一个map参与完成一次同步才能再接收下一个任务,如果该任务执行的慢就会造成长尾现象,而本发明实施例中,目标复制执行设备将同步任务发送给源数据节点会,源数据节点将待同步文件直接从源数据节点同步到目的数据节点,不需要目标复制执行设备再参与中转的过程,所以还进一步解决了现有技术中的长尾问题。
以上从系统和方法的角度介绍了本发明实施例中的文件同步的过程,实际上,本发明实施例还提供了相应的文件同步的装置,该文件同步的装置被配置实现上述复制管理设备、复制执行设备或主节点所执行的方法的功能,由软件实现,其软件包括与上述功能相应的单元,与上述功能相应的单元可以包括接收单元、处理单元和发送单元,该接收单元、处理单元和发送单元通信连接,接收单元用于实现相应接收的功能,发送单元用于实现相应发送的功能,处理单元用于实现相应处理的功能。
当该文件同步的装置被配置实现上述复制管理设备的功能时,发送单元可以执行图5对应实施例中的步骤601和步骤606,以及图6所对应实施例中的步骤701和步骤706。接收单元可以执行图5对应实施例中的步骤603和步骤605,以及图6所对应实施例中的步骤703和步骤705。处理单元可以执行图5对应实施例中的步骤604,以及图6所对应实施例中的步骤704。
当该文件同步的装置被配置实现上述复制执行设备的功能时,接收单元可以执行图5对应实施例中的步骤607和步骤714。发送单元可以执行图6对应实施例中的步骤707和步骤711。处理单元可以执行图6对应实施例中的步骤710。
当该文件同步的装置被配置实现上述主节点的功能时,接收单元可以执行图5对应实施例中的步骤602,以及图6所对应实施例中的步骤702。发送单元可以执行图6对应实施例中的步骤707、步骤709和步骤713。处理单元可以执行图6对应实施例中的步骤708和步骤712。
进一步的,上述实施例中的复制管理设备、复制执行设备或主节点可以是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路(application-specificintegrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,各模块还可以通过图7中的主机800来实现。
该主机800可以为服务器,大型机,小型机等。图7是本发明实施例提供的一种主机结构示意图。该主机800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)822(例如,一个或一个以上处理器)、收发器860、存储器832,一个或一个以上存储应用程序842或数据的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832可以由易失性存储介质构成,存储介质830可以由非易失性存储介质构成。存储在存储介质830的程序可以包括一个或一个以上模块实现(图示没标出),每个模块可以包括对主机中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在主机800上执行存储介质830中存储的一系列指令操作。
主机800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,和/或,一个或一个以上操作系统841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等,还可以包括应用程序842。
上述实施例中由复制管理设备、复制执行设备或主节点所执行的步骤可以基于该图7所示的主机结构。
处理器820执行程序指令,用于使主机执行图2、图5和图6所对应的实施例中复制管理设备、复制执行设备或主节点所执行的方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的文件同步的方法、设备以及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种文件同步的方法,其特征在于,所述方法应用于Hadoop分布式文件系统HDFS,所述HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,所述方法包括:
所述复制管理设备向所述第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号;
所述复制管理设备接收所述第一HDFS集群的主节点发送的待同步文件的信息,所述待同步文件的信息是所述第一HDFS集群的主节点确定的与所述目录结束操作编号接续的目录操作编号所对应文件的信息;
所述复制管理设备根据所述待同步文件的信息,确定至少一个同步任务,其中,每个同步任务包含所述待同步文件中至少一个文件的信息;
所述复制管理设备接收目标复制执行设备发送的任务请求后,向所述目标复制执行设备发送目标同步任务,所述目标同步任务用于所述目标复制执行设备根据所述目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群,所述目标复制执行设备是所述至少一个复制执行设备中的一个。
2.根据权利要求1所述的方法,其特征在于,所述多个HDFS集群还包括第二HDFS集群,所述目的数据节点属于所述第二HDFS集群;
所述至少一个文件的信息与存储所述至少一个文件的源数据块的地址信息对应;
所述至少一个文件的信息用于所述目标复制执行设备从所述第一HDFS集群的主节点获取与所述至少一个文件的信息对应的源数据块的地址信息,所述源数据块的地址信息用于所述目标复制执行设备确定所述源数据块的数量,所述源数据块的数量用于所述目标复制执行设备从所述第二HDFS集群的主节点获取目的数据块的地址信息,所述目的数据块的地址信息是所述第二HDFS集群的主节点根据所述源数据块的数量为所述至少一个文件分配的,所述源数据块的地址信息和所述目的数据块的地址信息用于所述目标复制执行设备指示所述源数据节点将所述至少一个文件从所述源数据块同步到所述目的数据块。
3.一种文件同步的方法,其特征在于,所述方法应用于Hadoop分布式文件系统HDFS,所述HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,所述方法包括:
目标复制执行设备接收所述复制管理设备发送的目标同步任务,所述目标同步任务是所述复制管理设备根据待同步文件的信息确定的至少一个同步任务中的一个,其中,每个同步任务包含所述待同步文件中至少一个文件的信息,所述待同步文件的信息是所述复制管理设备向所述第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号后,由所述第一HDFS集群的主节点所确定的与所述目录结束操作编号接续的目录操作编号所对应文件的信息,所述目标复制执行设备是所述至少一个复制执行设备中的一个;
所述目标复制执行设备根据所述目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群。
4.根据权利要求3所述的方法,其特征在于,所述多个HDFS集群包括第二HDFS集群,所述目的数据节点属于所述第二HDFS集群;
所述至少一个文件的信息与存储所述至少一个文件的源数据块的地址信息对应;
所述目标复制执行设备根据所述目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,包括:
所述目标复制执行设备根据所述至少一个文件的信息从所述第一HDFS集群的主节点获取与所述至少一个文件的信息对应的源数据块的地址信息;
所述目标复制执行设备根据所述源数据块的地址信息,确定所述源数据块的数量;
所述目标复制执行设备根据所述源数据块的数量从所述第二HDFS集群的主节点获取目的数据块的地址信息,所述目的数据块的地址信息是所述第二HDFS集群的主节点根据所述源数据块的数量为所述至少一个文件分配的;
所述目标复制执行设备向所述源数据节点发送同步指示消息,所述同步指示消息包含源数据块的地址信息和所述目的数据块的地址信息,所述源数据块的地址信息和所述目的数据块的地址信息用于所述源数据节点将所述至少一个文件从所述源数据块同步到所述目的数据块。
5.根据权利要求4所述的方法,其特征在于,所述目标复制执行设备向所述源数据节点发送同步指示消息,包括:
当所述源数据块的地址信息指示所述源数据块有多个时,所述目标复制执行设备针对每个源数据块向所述源数据节点并行发送所述同步指示消息。
6.一种文件同步的方法,其特征在于,所述方法应用于Hadoop分布式文件系统HDFS,所述HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,当所述主节点属于所述第一HDFS集群时,所述方法包括:
所述主节点接收所述复制管理设备发送的前一次所同步数据文件的目录结束操作编号;
所述主节点从文件的目录操作编号中确定与所述目录结束操作编号接续的目录操作编号,并确定所述接续的目录操作编号所对应的待同步文件的信息;
所述主节点向所述复制管理设备发送所述待同步文件的信息,所述待同步文件的信息用于所述复制管理设备确定至少一个同步任务,其中,每个同步任务包含所述待同步文件中至少一个文件的信息,所述至少一个文件的信息用于目标复制执行设备将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群,所述目标复制执行设备是所述至少一个复制执行设备中的一个。
7.根据权利要求6所述的方法,其特征在于,所述至少一个文件的信息与存储所述至少一个文件的源数据块的地址信息对应;
所述主节点向所述复制管理设备发送所述待同步文件的信息之后,所述方法还包括:
所述主节点接收所述目标复制执行设备发送的至少一个文件的信息;
所述主节点确定与所述至少一个文件的信息对应的源数据块的地址信息;
所述主节点向所述目标复制执行设备发送所述源数据块的地址信息,所述源数据块的地址信息用于所述目标复制执行设备确定所述源数据块的数量。
8.根据权利要求7所述的方法,其特征在于,所述多个HDFS集群还包括第二HDFS集群,所述目的数据节点属于所述第二HDFS集群,当所述主节点属于所述第二HDFS集群时,所述方法还包括:
所述主节点接收所述目标复制执行设备发送的源数据块的数量;
所述主节点根据所述源数据块的数量为所述至少一个文件创建目的数据块,并为所述目的数据块分配地址信息;
所述主节点向所述目标复制执行设备发送所述目的数据块的地址信息,所述源数据块的地址信息和所述目的数据块的地址信息用于所述目标复制执行设备指示所述源数据节点将所述至少一个文件从所述源数据块同步到所述目的数据块。
9.一种复制管理设备,其特征在于,所述复制管理设备应用于Hadoop分布式文件系统HDFS,所述HDFS还包括至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,所述复制管理设备包括:收发器、处理器和存储器,所述收发器、所述处理器和所述存储器通过总线连接;
其中,所述存储器用于存储所述处理器执行文件同步的程序;
所述收发器用于向所述第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号,接收所述第一HDFS集群的主节点发送的待同步文件的信息,所述待同步文件的信息是所述第一HDFS集群的主节点确定的与所述目录结束操作编号接续的目录操作编号所对应文件的信息;
所述处理器用于根据所述待同步文件的信息,确定至少一个同步任务,其中,每个同步任务包含所述待同步文件中至少一个文件的信息;
所述收发器还用于接收目标复制执行设备发送的任务请求后,向所述目标复制执行设备发送目标同步任务,所述目标同步任务用于所述目标复制执行设备根据所述目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群,所述目标复制执行设备是所述至少一个复制执行设备中的一个。
10.一种复制执行设备,其特征在于,所述复制执行设备应用于Hadoop分布式文件系统HDFS,所述HDFS还包括复制管理设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,所述复制执行设备包括:收发器、处理器和存储器,所述收发器、所述处理器和所述存储器通过总线连接;
其中,所述存储器用于存储所述处理器执行文件同步的程序;
所述收发器用于接收所述复制管理设备发送的目标同步任务,所述目标同步任务是所述复制管理设备根据待同步文件的信息确定的至少一个同步任务中的一个,其中,每个同步任务包含所述待同步文件中至少一个文件的信息,所述待同步文件的信息是所述复制管理设备向所述第一HDFS集群的主节点发送前一次所同步文件的目录结束操作编号后,由所述第一HDFS集群的主节点所确定的与所述目录结束操作编号接续的目录操作编号所对应文件的信息;
所述处理器用于根据所述目标同步任务中的至少一个文件的信息,将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群。
11.根据权利要求10所述的复制执行设备,其特征在于,所述多个HDFS集群包括第二HDFS集群,所述目的数据节点属于所述第二HDFS集群,所述至少一个文件的信息与存储所述至少一个文件的源数据块的地址信息对应;
所述处理器具体用于:
根据所述至少一个文件的信息从所述第一HDFS集群的主节点获取与所述至少一个文件的信息对应的源数据块的地址信息;
根据所述源数据块的地址信息,确定所述源数据块的数量;
根据所述源数据块的数量从所述第二HDFS集群的主节点获取目的数据块的地址信息,所述目的数据块的地址信息是所述第二HDFS集群的主节点根据所述源数据块的数量为所述至少一个文件分配的;
所述收发器还用于向所述源数据节点发送同步指示消息,所述同步指示消息包含源数据块的地址信息和所述目的数据块的地址信息,所述源数据块的地址信息和所述目的数据块的地址信息用于所述源数据节点将所述至少一个文件从所述源数据块同步到所述目的数据块。
12.根据权利要求11所述的复制执行设备,其特征在于,
所述收发器具体用于当所述源数据块的地址信息指示所述源数据块有多个时,针对每个源数据块向所述源数据节点并行发送所述同步指示消息。
13.一种主节点,其特征在于,所述主节点应用于Hadoop分布式文件系统HDFS,所述HDFS包括复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括所述主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群,所述主节点包括:收发器、处理器和存储器,所述收发器、所述处理器和所述存储器通过总线连接;
当所述主节点属于所述第一HDFS集群时,
所述收发器用于接收所述复制管理设备发送的前一次所同步数据文件的目录结束操作编号;
所述处理器用于从文件的目录操作编号中确定与所述目录结束操作编号接续的目录操作编号,并确定所述接续的目录操作编号所对应的待同步文件的信息;
所述收发器还用于向所述复制管理设备发送所述待同步文件的信息,所述待同步文件的信息用于所述复制管理设备确定至少一个同步任务,其中,每个同步任务包含所述待同步文件中至少一个文件的信息,所述至少一个文件的信息用于目标复制执行设备将所述至少一个文件从源数据节点同步到目的数据节点,所述源数据节点属于所述第一HDFS集群,所述目标复制执行设备是所述至少一个复制执行设备中的一个。
14.根据权利要求13所述的主节点,其特征在于,
所述收发器还用于在向所述复制管理设备发送所述待同步文件的信息之后,接收所述目标复制执行设备发送的至少一个文件的信息;
所述处理器还用于确定与所述至少一个文件的信息对应的源数据块的地址信息,其中,所述至少一个文件的信息与存储所述至少一个文件的源数据块的地址信息对应;
所述收发器还用于向所述目标复制执行设备发送所述源数据块的地址信息,所述源数据块的地址信息用于所述目标复制执行设备确定所述源数据块的数量。
15.根据权利要求13所述的主节点,其特征在于,所述多个HDFS集群还包括第二HDFS集群,所述目的数据节点属于所述第二HDFS集群,当所述主节点属于所述第二HDFS集群时;
所述收发器还用于接收所述目标复制执行设备发送的源数据块的数量;
所述处理器还用于根据所述源数据块的数量为所述至少一个文件创建目的数据块,并为所述目的数据块分配地址信息;
所述收发器还用于向所述目标复制执行设备发送所述目的数据块的地址信息,所述源数据块的地址信息和所述目的数据块的地址信息用于所述目标复制执行设备指示所述源数据节点将所述至少一个文件从所述源数据块同步到所述目的数据块。
16.一种Hadoop分布式文件系统,其特征在于,包括:复制管理设备、至少一个复制执行设备和多个HDFS集群,每个HDFS集群都分别包括主节点和至少两个数据节点,针对每个HDFS集群,所述至少两个数据节点存储有文件,所述主节点维护有该集群中所述至少两个数据节点所存储文件的信息,所述多个HDFS集群包括第一HDFS集群;
所述复制管理设备为上述权利要求9所述的复制管理设备;
所述复制执行设备为上述权利要求10-12任一所述的复制执行设备;
所述主节点为上述权利要求13-15任一所述的主节点。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807917.1A CN106372221B (zh) | 2016-09-07 | 2016-09-07 | 一种文件同步的方法、设备及系统 |
PCT/CN2017/092523 WO2018045820A1 (zh) | 2016-09-07 | 2017-07-11 | 一种文件同步的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610807917.1A CN106372221B (zh) | 2016-09-07 | 2016-09-07 | 一种文件同步的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106372221A CN106372221A (zh) | 2017-02-01 |
CN106372221B true CN106372221B (zh) | 2019-08-20 |
Family
ID=57900205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610807917.1A Active CN106372221B (zh) | 2016-09-07 | 2016-09-07 | 一种文件同步的方法、设备及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106372221B (zh) |
WO (1) | WO2018045820A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372221B (zh) * | 2016-09-07 | 2019-08-20 | 华为技术有限公司 | 一种文件同步的方法、设备及系统 |
CN107609061A (zh) * | 2017-08-28 | 2018-01-19 | 武汉奇米网络科技有限公司 | 一种数据同步的方法和装置 |
CN107562926B (zh) * | 2017-09-14 | 2023-09-26 | 丙申南京网络技术有限公司 | 针对大数据分析的多hadoop分布式文件系统 |
CN109905645B (zh) * | 2017-12-08 | 2021-02-23 | 华为技术有限公司 | 视频监控设备目录交换方法和联网平台 |
CN108234602B (zh) * | 2017-12-11 | 2021-02-09 | 武汉市烽视威科技有限公司 | MySQL的多层数据同步方法 |
US10705883B2 (en) * | 2018-06-19 | 2020-07-07 | Microsoft Technology Licensing, Llc | Dynamic hybrid computing environment |
US11003686B2 (en) * | 2018-07-26 | 2021-05-11 | Roblox Corporation | Addressing data skew using map-reduce |
CN111522688B (zh) * | 2019-02-01 | 2023-09-15 | 阿里巴巴集团控股有限公司 | 分布式系统的数据备份方法及装置 |
CN111694808B (zh) * | 2019-03-15 | 2023-12-29 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及计算设备 |
CN112306962B (zh) * | 2019-07-26 | 2024-02-23 | 杭州海康威视数字技术股份有限公司 | 计算机集群系统中的文件拷贝方法、装置及存储介质 |
CN112579692B (zh) * | 2019-09-29 | 2023-05-05 | 杭州海康威视数字技术股份有限公司 | 一种数据同步方法、装置、系统、设备及存储介质 |
CN110933137B (zh) * | 2019-10-31 | 2022-08-02 | 北京浪潮数据技术有限公司 | 一种数据同步方法、系统、设备及可读存储介质 |
CN112115110A (zh) * | 2020-08-14 | 2020-12-22 | 南京航空航天大学 | 一种对文件进行编号的同步备份方法 |
CN112163038A (zh) * | 2020-09-18 | 2021-01-01 | 中国建设银行股份有限公司 | 跨集群数据同步方法、装置、设备及存储介质 |
CN114124431A (zh) * | 2021-09-13 | 2022-03-01 | 许昌许继软件技术有限公司 | 一种用于隔离装置的文件实时自动同步方法及系统 |
CN115801809B (zh) * | 2022-11-03 | 2023-11-03 | 广州辰创科技发展有限公司 | 跨网数据同步控制系统、方法及介质 |
CN117834656A (zh) * | 2024-03-06 | 2024-04-05 | 广州优刻谷科技有限公司 | 一种边缘计算跨域同步方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176860A (zh) * | 2011-12-21 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 数据备份方法和系统 |
CN104023085A (zh) * | 2014-06-25 | 2014-09-03 | 武汉大学 | 一种基于增量同步的安全云存储系统 |
CN104750855A (zh) * | 2015-04-16 | 2015-07-01 | 成都睿峰科技有限公司 | 一种大数据存储优化方法和装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037473B2 (en) * | 2006-10-20 | 2011-10-11 | International Business Machines Corporation | Method to share licensed applications between virtual machines |
US20120182891A1 (en) * | 2011-01-19 | 2012-07-19 | Youngseok Lee | Packet analysis system and method using hadoop based parallel computation |
CN103152398B (zh) * | 2013-02-07 | 2016-05-11 | 中国科学院计算技术研究所 | 一种多终端文件间的文件同步方法及系统 |
CN104348859B (zh) * | 2013-07-30 | 2019-05-07 | 深圳市腾讯计算机系统有限公司 | 文件同步方法、装置、服务器、终端及系统 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN105912628B (zh) * | 2016-04-07 | 2019-05-28 | 北京奇虎科技有限公司 | 主从数据库的同步方法及装置 |
CN106372221B (zh) * | 2016-09-07 | 2019-08-20 | 华为技术有限公司 | 一种文件同步的方法、设备及系统 |
-
2016
- 2016-09-07 CN CN201610807917.1A patent/CN106372221B/zh active Active
-
2017
- 2017-07-11 WO PCT/CN2017/092523 patent/WO2018045820A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176860A (zh) * | 2011-12-21 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 数据备份方法和系统 |
CN104023085A (zh) * | 2014-06-25 | 2014-09-03 | 武汉大学 | 一种基于增量同步的安全云存储系统 |
CN104750855A (zh) * | 2015-04-16 | 2015-07-01 | 成都睿峰科技有限公司 | 一种大数据存储优化方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2018045820A1 (zh) | 2018-03-15 |
CN106372221A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106372221B (zh) | 一种文件同步的方法、设备及系统 | |
CN109246194B (zh) | 基于多领导节点的实用拜占庭容错区块链共识方法及系统 | |
CN101551801B (zh) | 数据同步的方法和系统 | |
CN102075402B (zh) | 虚拟网络映射处理方法和系统 | |
CN107145673B (zh) | 一种联合仿真系统和方法 | |
CN104994177B (zh) | 网盘系统的同步方法、终端设备和网盘系统 | |
CN106843745A (zh) | 容量扩展方法及装置 | |
KR101304663B1 (ko) | 마인드맵 공동편집 시스템 및 방법 | |
CN105701159B (zh) | 一种数据同步装置和方法 | |
CN108280080A (zh) | 一种数据同步方法、装置以及电子设备 | |
CN102567495A (zh) | 一种海量信息存储系统及实现方法 | |
CN104348859B (zh) | 文件同步方法、装置、服务器、终端及系统 | |
CN106095911A (zh) | 搜索系统及数据同步方法 | |
CN102685239A (zh) | 分布式渲染方法 | |
Nédelec et al. | Crate: Writing stories together with our browsers | |
CN102779160B (zh) | 海量数据信息索引系统和索引构建方法 | |
CN102946410A (zh) | 网络同步方法和装置 | |
CN105721582A (zh) | 多节点文件备份系统 | |
CN105518641A (zh) | 点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统 | |
CN104348913A (zh) | 一种紧耦合可扩展的大数据交互方法 | |
CN102946411A (zh) | 网络同步系统 | |
CN113785281A (zh) | 实施操作序列化以实现分布式数据结构的一致性的消息传送 | |
CN101119365B (zh) | 大规模协同环境下的协同交互优化方法 | |
CN106708941A (zh) | 电网多任务在线协同编辑方法 | |
CN102624932A (zh) | 基于索引的异地云数据同步方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220228 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |