用于HDFS的文件比较方法及装置制造方法及图纸

技术编号:9295812 阅读:81 留言:0更新日期:2013-10-31 00:23
本发明专利技术提出一种用于HDFS的文件比较方法及装置,根据本发明专利技术实施例的方法包括步骤:从HDFS的主节点获取第一文件和第二文件的信息;根据信息比较构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量是否相同;如果是,则从HDFS的从节点获取多个第一数据块的多个第一crc校验值以及多个第二数据块的多个第二crc校验值;将多个第一crc校验值以及多个第二crc校验值按照顺序分别进行比较;如果比较结果相同,则判断第一文件和第二文件相同;以及如果比较结果不同,则判断第一文件和第二文件不同。该方法可以节省网络传输量,并且提高文件比较的效率。

【技术实现步骤摘要】
用于HDFS的文件比较方法及装置
本专利技术涉及互联网
,尤其涉及一种用于HDFS的文件比较方法及装置。
技术介绍
HDFS(HadoopDistributedFileSystem)是一种分布式文件系统。它有着高容错性的特点,而且提供高传输率来访问应用程序的数据,适合有着超大数据集的应用程序。对于HDFS上的文件进行比较时,使用的传统的文件比较方法包括:1.直接比较法:先将需要比较的两个文件从HDFS上下载到本地,然后再在本地通过diff等文件比较工具进行比较;2.哈希值比较法:先将需要比较的两个文件从HDFS上下载到本地,然后分别对两个文件进行哈希值的计算,例如采用md5算法,最后对计算出来的md5值进行比较。以上两种方法均需要下载文件,并且是对文件进行逐字节的比较,具有网络传输量大、比较效率较低的缺点,特别是对大文件进行比较时缺点更为突出。
技术实现思路
本专利技术旨在至少解决上述技术问题之一。为此,本专利技术的一个目的在于提出一种能够节省网络传输并且提高比较效率的用于HDFS的文件比较方法。本专利技术的另一目的在于提出一种用于HDFS的文件比较装置。为了实现上述目的,根据本专利技术的第一方面实施例的用于HDFS的文件比较方法包括以下步骤:A.从HDFS的主节点获取第一文件和第二文件的信息;B.根据所述信息比较构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量是否相同;C.如果是,则从HDFS的从节点获取所述多个第一数据块的多个第一crc校验值以及所述多个第二数据块的多个第二crc校验值;D.将所述多个第一crc校验值以及所述多个第二crc校验值按照顺序分别进行比较;E.如果比较结果相同,则判断所述第一文件和所述第二文件相同;F.如果比较结果不同,则判断所述第一文件和所述第二文件不同。根据本专利技术实施例的用于HDFS的文件比较方法,可以节省网络传输量,并且提高文件比较的效率。为了实现上述目的,根据本专利技术的第二方面实施例的用于HDFS的文件比较装置包括:信息获取模块,所述信息获取模块用于从HDFS的主节点获取第一文件和第二文件的信息;第一比较模块,所述第一比较模块用于根据所述信息比较构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量是否相同;crc校验值获取模块,所述crc校验值获取模块用于在构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量相同的情况下,从HDFS的从节点获取所述多个第一数据块的多个第一crc校验值以及所述多个第二数据块的多个第二crc校验值;第二比较模块,所述第二比较模块用于将所述多个第一crc校验值以及所述多个第二crc校验值按照顺序分别进行比较;以及判断模块,所述判断模块用于在比较结果相同时判断所述第一文件和所述第二文件相同,以及比较结果不同时判断所述第一文件和所述第二文件不同。根据本专利技术实施例的用于HDFS的文件比较装置,耗费网络传输少,文件比较效率高。本专利技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,图1是根据本专利技术一个实施例的用于HDFS的文件比较方法的流程图;图2是根据本专利技术一个实施例的用于HDFS的文件比较方法的流程图;图3是根据本专利技术一个实施例的用于HDFS的文件比较方法的流程图;图4是根据本专利技术一个实施例的用于HDFS的文件比较装置的结构框图;图5是根据本专利技术一个实施例的用于HDFS的文件比较装置的结构框图;以及图6是根据本专利技术一个实施例的用于HDFS的文件比较装置的结构框图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。在本专利技术的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。此外,在本专利技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本专利技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本专利技术的实施例所属
的技术人员所理解。为了更清楚地阐述本专利技术的用于HDFS的文件比较方法及装置,现对HDFS作进一步介绍。在HDFS系统中,一个文件的数据的组织方法如下:文件被切分成若干个固定大小的数据块,而数据块被随机地存储在从节点上(也称为DataNode),同时存放数据块的位置也会保存一份这个数据块的crc(CyclicalRedundancyCheck,循环冗余校验)校验值数据,而文件由哪些数据块组成的信息则存在主节点上(也称为NameNode)。例如,设F文件的大小为10G,如果HDFS中设定的数据块大小为256M,则该文件被划分为40个数据块;在系统中默认设定循环冗余校验方法为crc32,则每数据块中每512字节对应4字节的crc校验值数据,每个数据块包括2k的crc校验值数据。由此,HDFS的主节点上存储着组成F文件的40个数据块的位置信息,HDFS的一个或多个从节点上存储着40个数据块的文件内容以及每个数据块对应的长度为2k的crc校验值数据。下面参考说明书附图描述根据本专利技术实施例的用于HDFS的文件比较方法。一种用于HDFS的文件比较方法,包括以下步骤:从HDFS的主节点获取第一文件和第二文件的信息;根据信息比较构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量是否相同;如果是,则从HDFS的从节点获取多个第一数据块的多个第一crc校验值以及多个第二数据块的多个第二crc校验值;将多个第一crc校验值以及多个第二crc校验值按照顺序分别进行比较;如果比较结果相同,则判断第一文件和第二文件相同;以及如果比较结果不同,则判断第一文件和第二文件不同。图1为根据本专利技术一个实施例的用于HDFS的文件比较方法的流程图。如图1所示,根据本专利技术实施例的用于HDFS的文件比较方法包括下述步骤。步骤S101,从HDFS的主节点获取第一文件和第二文件的信息。具体地,该信息包括构成第一文件的多个数据块的数量及位置和构成第一文件的多个数据块的数量及位置。在本专利技术的一个实施例中,多个第一数据块和多个第二数据块的大小是265M,只需已知某个文件的大小,即可求得构成该文件的数据块的数量。需要说明的本文档来自技高网
...
用于HDFS的文件比较方法及装置

【技术保护点】
一种用于HDFS的文件比较方法,其特征在于,包括以下步骤:从HDFS的主节点获取第一文件和第二文件的信息;根据所述信息比较构成第一文件的多个第一数据块的数量与构成第二文件的多个第二数据块的数量是否相同;如果是,则从HDFS的从节点获取所述多个第一数据块的多个第一crc校验值以及所述多个第二数据块的多个第二crc校验值;将所述多个第一crc校验值以及所述多个第二crc校验值按照顺序分别进行比较;如果比较结果相同,则判断所述第一文件和所述第二文件相同;以及如果比较结果不同,则判断所述第一文件和所述第二文件不同。

【技术特征摘要】
1.一种用于HDFS的文件比较方法,其特征在于,包括以下步骤:从HDFS的主节点获取构成第一文件的多个第一数据块的数量和构成第二文件的多个第二数据块的数量;比较所述构成第一文件的多个第一数据块的数量与所述构成第二文件的多个第二数据块的数量是否相同;如果否,则判断所述第一文件和所述第二文件不同,如果是,则从HDFS的从节点获取所述多个第一数据块的多个第一crc校验值以及所述多个第二数据块的多个第二crc校验值;将所述多个第一crc校验值以及所述多个第二crc校验值按照顺序分别进行比较;如果比较结果相同,则判断所述第一文件和所述第二文件相同;以及如果比较结果不同,则判断所述第一文件和所述第二文件不同,其中,如果所述构成第一文件的所有数据块的crc校验值分别与所述构成第二文件的所有数据块的crc校验值相同,才判断第一文件和第二文件相同,当判断所述构成第一文件的某个数据块的crc校验值与对应顺序的所述构成第二文件的某个数据块的crc校验值不同,则判断所述第一文件和所述第二文件不同,并且所述构成第一文件之后顺序的多个数据块的crc校验值与所述构成第二文件之后顺序的多个数据块的crc校验值无需继续比较。2.根据权利要求1所述的用于HDFS的文件比较方法,其特征在于,进一步包括步骤:生成与所述多个第一crc校验值对应的多个第一哈希值以及与所述多个第二crc校验值对应的多个第二哈希值,其中,将所述多个第一哈希值与所述多个第二哈希值按照顺序分别进行比较;如果比较结果相同,则判断所述第一文件和所述第二文件相同;以及如果比较结果不同,则判断所述第一文件和所述第二文件不同。3.根据权利要求1或2所述的用于HDFS的文件比较方法,其特征在于,所述多个第一数据块以及所述多个第二数据块的大小是256M。4.根据权利要求3所述的用于HDFS的文件比较方法,其特征在于,所述多个第一crc校验值以及所述多个第二crc校验值的长度是2048字节。5.根据权利要求4所述的用于HDFS的文件比较方法,其特征在于,所述多个第一哈希值与所述多个第二哈希值的长度是16字节。6.一种用于HDFS的文件比较装置,其特征在于,包括:信息获取模块,所述信息获取模块用于从HDFS的主节点获取第一文件和第二文件的信息,其中,所述信息获取模块不需要从所述HDFS的主节点下载所述第一文件和第二文件,仅需要从所述HDFS的主节点获取所述第一文件和第二...

【专利技术属性】
技术研发人员:潘瑾瑜
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1