基于分布式文件系统的相似文件查找方法、系统及装置与流程

文档序号:28322934发布日期:2022-01-04 23:47阅读:64来源:国知局
基于分布式文件系统的相似文件查找方法、系统及装置与流程

1.本发明涉及计算机技术领域,更具体的说是涉及一种基于分布式文件系统的相似文件查找方法、系统及装置。


背景技术:

2.随着大数据的发展,数据量每日倍增,一些文件会在网络上被大量转发和存储。当前,局域网环境中的文件都是通过共享文件的方式来进行修改、存储、查找和下载。
3.共享文件存储在单一的存储节点上,虽然便于终端用户的访问和使用,但是存在以下弊端:1、单一的存储节点发送和接受文件的工作量大,且稳定性不足,存储节点一旦发送故障,有可能导致文件的永久性丢失。2、若一个文件由多人修改,会出现内容冲突,并难于知道具体修改时间,文件传输过程中存在被修改的可能性;3、共享文件的查找速度和效率较低;4、安全防护手段比较简单,无法记录终端用户的操作,追溯终端用户信息以及文件的分布信息。
4.为了克服上述缺陷,人们使用分布式文件系统来实现文件共享,分布式文件系统能够把大量数据分散到不同的节点上存储,大大减小了数据丢失的风险。分布式文件系统具有冗余性,部分节点的故障并不影响整体的正常运行,而且即使出现故障的计算机存储的数据已经损坏,也可以由其它节点将损坏的数据恢复出来。但是,现有的分布式文件系统仍然无法实现在对相似文件进行查找时追溯该文件被打开浏览的终端用户信息以及该文件在网络上的分布信息。


技术实现要素:

5.针对现有技术中存在的问题,本发明的目的在于提供一种基于分布式文件系统的相似文件查找方法、系统及装置。
6.本发明为实现上述目的,通过以下技术方案实现:
7.一种基于分布式文件系统的相似文件查找方法,包括如下步骤:
8.s1:首次在用户终端上进行打开文件操作时,在所属服务器上生成相应的终端节点,并根据终端节点的硬件信息生成终端节点的节点信息;
9.s2:每一次在终端节点上进行打开文件操作时,均根据所打开的文件添加对应的文件节点信息,并存储相应的文件内容信息;
10.s3:使用预设的相似性算法对终端节点上的文件节点进行一一对比,得出任意文件节点的相似性数值,并将相似性数值存储到对应的文件节点中;
11.s4:读取待查找的文件;
12.s5:遍历所有的主机节点以及文件节点,若文件节点存储的待查找的文件的相似性数值大于预设相似度阈值,则标记此文件节点;
13.s6:根据标记的文件节点生成终端节点分布图。
14.进一步,所述终端节点的节点信息为哈希码,所述哈希码通过终端节点的mac地
址、ip和随机数组成的字符串哈希生成。
15.进一步,所述步骤s1还包括:
16.生成的终端节点均通过预设指针指向上一次生成的终端节点。
17.进一步,所述文件节点信息包括:
18.文件的md5码、所属的服务器的哈希值和符合所打开的文件的相似性的文件信息列表。
19.进一步,所述步骤s2还包括:
20.所述相应的文件内容信息存储在分布式文件系统中,分布式文件系统采用fastdfs分布式文件系统。
21.进一步,所述步骤s3具体为:
22.使用simhash相似性算法对终端节点上的文件节点进行一一对比,得出任意文件节点的相似性数值,将对比的文件的md5信息和相似性数值存储到对应的文件节点中,并生成一张网状拓扑图。
23.相应的,本发明还公开了一种基于分布式文件系统的相似文件查找系统,包括:
24.终端节点生成单元,用于首次在用户终端上进行打开文件操作时,在所属服务器上生成相应的终端节点,并根据终端节点的硬件信息生成终端节点的节点信息;
25.文件节点生成单元,用于每一次在终端节点上进行打开文件操作时,均根据所打开的文件添加对应的文件节点信息,并存储相应的文件内容信息;对比单元,用于使用预设的相似性算法对终端节点上的文件节点进行一一对比,得出任意文件节点的相似性数值,并将相似性数值存储到对应的文件节点中;
26.读取单元,用于读取待查找的文件;
27.遍历单元,用于遍历所有的主机节点以及文件节点,若文件节点存储的待查找的文件的相似性数值大于预设相似度阈值,则标记此文件节点;
28.分布图生成单元,用于根据标记的文件节点生成终端节点分布图。
29.相应的,本发明还公开了一种基于分布式文件系统的相似文件查找装置,包括:
30.存储器,用于存储计算机程序;
31.处理器,用于执行所述计算机程序时实现如上文任一项所述基于分布式文件系统的相似文件查找方法步骤。
32.对比现有技术,本发明有益效果在于:
33.1、本发明基于分布式文件系统,由于分布式节点上的数据存储文件是加密的,能够有效提高数据的安全性;同时,如果终端用户修改了文件的任意内容之后,相应的服务器节点上就会创建文件节点,本发明可以根据相似性分析来找到文件被修改过的终端用户,相应的便也找到了文件被存储在哪些终端用户的机器上,降低了文件传输过程中被修改的可能性。
34.2、本发明采用了分布式文件信息存储,将数据存储在多个节点上,一方面提高了数据的使用效率,使数据存在不同的设备上具备一定的可扩展性。另一个方面可以将数据的运维成本分摊,数据不易丢失。通过分布式文件系统将文件存储到分布式的服务器节点上,在保证高可用性的同时也具备高扩展性,并且能解决文件存储的单点故障问题。
35.3、本发明能够通过每个终端用户打开文件时上报的文件数据,形成相似性分析路
径拓扑图,利用相似性分析路径拓扑图可以快速的定位出存储有待查找的文件数据的终端设备。
36.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
38.附图1是本发明具体实施方式的方法流程图。
39.附图2是本发明具体实施方式的系统结构图。
40.图中,1为终端节点生成单元,2为文件节点生成单元,3为对比单元,4为读取单元,5为遍历单元,6为分布图生成单元。
具体实施方式
41.下面结合附图对本发明的具体实施方式做出说明。
42.如图1所示的一种基于分布式文件系统的相似文件查找方法,包括如下步骤:
43.s1:首次在用户终端上进行打开文件操作时,在所属服务器上生成相应的终端节点,并根据终端节点的硬件信息生成终端节点的节点信息。
44.具体来说,用户终端首次打开某一个文件时,在所属服务器上根据用户终端的硬件信息生成一个该终端的节点信息。终端节点的节点信息由终端的基本信息组成的一个字符串哈希生成,并且每个终端节点都指向之前的终端节点。终端节点的节点信息包括mac地址、ip和随机数等。
45.s2:每一次在终端节点上进行打开文件操作时,均根据所打开的文件添加对应的文件节点信息,并存储相应的文件内容信息。
46.有了终端节点的节点信息,当用户每次打开一个文件都时会在相应的终端节点上追加一个文件节点信息,每一个文件节点信息包含文件的md5码、所属的服务器的哈希值以及与打开的文件相似的文件信息列表。同时文件内容信息会被存储到分布式文件系统当中,分布式文件系统具体采用开源的高性能的fastdfs分布式文件系统来做文件的管理,可以对海量文件进行存储和读取,完成终端用户的文件存储。
47.本步骤会在打开文件操作时同步执行,随着用户和终端机器的增加文件节点数据也会随之增加,最终就会得到一个由链式存储的文件相关的分布式文件系统。
48.s3:使用预设的相似性算法对终端节点上的文件节点进行一一对比,得出任意文件节点的相似性数值,并将相似性数值存储到对应的文件节点中。
49.具体来说:在每一个服务器上的终端节点上存储的文件节点之间,通过相似性算法simhash来对所有的文件进行一一对比,得出任意两个文件的相似性数值,并将两两比较的文件的md5信息和相似性数值存储到对应的文件节点中,最终形成一张网状拓扑图。
50.s4:读取待查找的文件。
51.s5:遍历所有的主机节点以及文件节点,若文件节点存储的待查找的文件的相似性数值大于预设相似度阈值,则标记此文件节点。
52.s6:根据标记的文件节点生成终端节点分布图。
53.如果想查找某一个文件存储在哪些终端上并想得到这些终端的具体信息,首先查找到该文件的所在文件节点,因为文件节点存储了与之相似的文件和相似性数值,所以获取到相似性数值大于预设相似度阈值的所有文件的信息和文件所在的主机的哈希值。此时,通过主机信息和文件信息对所有的主机节点以及文件节点遍历完之后,最终得到了一张终端节点分布图。终端节点分布图中的每个终端节点均存储了符合文件相似度要求的文件。
54.相应的,如图2所示,本发明还公开了一种基于分布式文件系统的相似文件查找系统,包括:
55.终端节点生成单元1,用于首次在用户终端上进行打开文件操作时,在所属服务器上生成相应的终端节点,并根据终端节点的硬件信息生成终端节点的节点信息。
56.文件节点生成单元2,用于每一次在终端节点上进行打开文件操作时,均根据所打开的文件添加对应的文件节点信息,并存储相应的文件内容信息。
57.对比单元3,用于使用预设的相似性算法对终端节点上的文件节点进行一一对比,得出任意文件节点的相似性数值,并将相似性数值存储到对应的文件节点中。
58.读取单元4,用于读取待查找的文件。
59.遍历单元5,用于遍历所有的主机节点以及文件节点,若文件节点存储的待查找的文件的相似性数值大于预设相似度阈值,则标记此文件节点。
60.分布图生成单元6,用于根据标记的文件节点生成终端节点分布图。
61.相应的,本发明还公开了一种基于分布式文件系统的相似文件查找装置,包括:
62.存储器,用于存储计算机程序。
63.处理器,用于执行所述计算机程序时实现如上文任一项所述基于分布式文件系统的相似文件查找方法步骤。
64.本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
65.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
66.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
67.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
68.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
69.结合附图和具体实施例,对本发明作进一步说明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所限定的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1