分布式文件存储和查询方法及存取系统的制作方法

文档序号:7771143阅读:182来源:国知局
分布式文件存储和查询方法及存取系统的制作方法
【专利摘要】本发明涉及一种分布式文件存储和查询方法及存取系统,所述分布式文件存储方法,包括:向服务器上传打包文件,所述打包文件包括原始文件和对所述原始文件进行描述的描述文件;所述服务器对所述打包文件进行解压,并对解压出的所述描述文件进行解析,以解析出所述描述文件的描述内容;所述服务器将解压出的所述原始文件传输到分布式文件系统;所述分布式文件系统向所述服务器返回所述原始文件存储的网络地址;所述服务器将所述原始文件存储的网络地址和解析出的所述描述内容传输到分布式数据库。由此,可以对存储的文件进行内容的分类和检索,实现了存储的数据与现有业务数据的结合。
【专利说明】 分布式文件存储和查询方法及存取系统

【技术领域】
[0001]本发明涉及计算机存储【技术领域】,具体涉及一种分布式文件存储和查询方法及存取系统。

【背景技术】
[0002]分布式文件存储是对普通的文件系统的扩展,通过水平增加机器来实现数据的多点备份和存储容量的扩充。但是仅仅实现静态文件的存储而不可以对存储的内容进行一个宏观的控制和分类在现在这个大数据时代是有很大的局限性的。
[0003]随着移动互联网时代的到来,互联网应用由原来的浏览器为客户端的应用变成了多平台多终端的模式,如手机客户端、Pad客户端等。这些终端产生的数据如果放在本地易丢失也不易跨终端访问和查看,这样的数据查看有很大的狭隘性,将这些数据全部放在服务端存储可以解决以上的局限。但是,随着用户和应用功能的增大,又会存在产生的数据的存储问题。一台服务器的存储容量有限,如果存满了就需要不停的加磁盘,如果机器硬件或者网络发生故障,就无法访问服务器,从而导致用户体验太差。
[0004]对于以上的存储问题,现有技术中提出了很多解决办法,比如用多台机器进行文件的备份和增加存储节点的方式来扩容,这种文件存储系统业内已经有很多成熟的应用,比如HDFS、FastDFS,MooseFS, KFS等,他们都可以实现文件存储服务的高可用和高容量,但是这样的文件存储可扩展性不强,虽然可以存储大量文件,但是对存储的文件进行内容的分类和检索有很大的局限性;并且所存储的数据和现有的业务数据很难进行结合。


【发明内容】

[0005]本发明所要解决的技术问题之一是对存储的文件进行内容的分类和检索有很大的局限性。
[0006]为此目的,本发明提出了一种分布式文件存储方法,包括:向服务器上传打包文件,所述打包文件包括原始文件和对所述原始文件进行描述的描述文件;所述服务器对所述打包文件进行解压,并对解压出的所述描述文件进行解析,以解析出所述描述文件的描述内容;所述服务器将解压出的所述原始文件传输到分布式文件系统;所述分布式文件系统向所述服务器返回所述原始文件存储的网络地址;所述服务器将所述原始文件存储的网络地址和解析出的所述描述内容传输到分布式数据库。
[0007]优选地,当所述分布式文件系统配置为多节点存储时,所述服务器将解压出的所述原始文件传输到分布式文件系统以及所述分布式文件系统向所述服务器返回所述原始文件存储的网络地址包括:所述服务器向多节点存储的所述分布式文件系统发送存储指令;所述分布式文件系统根据容量和/或带宽,向所述服务器发送用于存储所述原始文件的存储节点的信息;所述服务器将所述原始文件传输到分布式文件系统的该存储节点内,以进行存储;所述分布式文件系统向所述服务器返回所述原始文件存储的存储节点及所述存储节点内的网络地址。
[0008]优选地,当所述分布式数据库配置为多节点记录时,所述服务器将所述原始文件存储的网络地址和解析出的所述描述内容传输到分布式数据库包括:所述服务器向多节点记录的所述分布式数据库发送记录指令;所述分布式数据库根据容量和/或带宽,向所述服务器发送用于存储所述原始文件存储的网络地址和解析出的描述内容的记录节点的信息;所述服务器将用于存储所述原始文件存储的网络地址和解析出的描述内容记录在所述分布式数据库的所述记录节点内。
[0009]本发明还公开了一种分布式文件查询方法,包括:向服务器发送查询条件;所述服务器根据接收到的查询条件,向分布式数据库发送查询请求,以对所述分布式数据库内存储的原始文件的描述内容进行检索;所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果;所述服务器返回所述检索结果;对所述检索结果进行解析,从所述分布式文件系统获取所请求的原始文件。
[0010]优选地,当所述分布式数据库配置为多节点记录时,所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果包括:所述分布式数据库根据所述查询请求从记录有所述描述内容的记录节点中选择带宽较大的记录节点来执行所述查询请求;所述分布式数据库内所述带宽较大的记录节点从所述分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果。
[0011]优选地,当所述分布式文件系统配置为多节点存储时,所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果包括:所述分布式文件系统在存储有所请求的原始文件的存储节点中选择带宽较大的存储节点,并将所述存储节点和所述存储节点内所请求的原始文件的网络地址发送回所述分布式数据库;所述分布式数据库将检索结果返回给所述服务器;并且,从所述分布式文件系统获取所请求的原始文件包括:从所述分布式文件系统的所述带宽较大的存储节点内的所请求的原始文件的网络地址获取所请求的原始文件。
[0012]优选地,所述查询条件是所请求的原始文件的名称、修改时间、上传时间、原始文件大小、原始文件类型中的至少一项。
[0013]本发明还公开了一种分布式文件存取系统,包括:客户端、服务器、分布式文件系统和分布式数据库,其中:所述客户端用于向所述服务器上传打包文件,所述打包文件包括原始文件和对所述原始文件进行描述的描述文件;所述服务器,用于对接收到的所述打包文件进行解压,对所述描述文件进行解析,以解析出所述描述文件的描述内容,将解压出的原始文件传输到分布式文件系统;并将分布式文件系统发来的所述原始文件存储的网络地址以及解析出的所述描述内容传输到分布式数据库;所述分布式文件系统用于存储所述服务器传输的所述原始文件,并将所述原始文件存储的网络地址返回至所述服务器;所述分布式数据库用于存储所述服务器传输的所述原始文件存储的网络地址和解析出的所述描述内容。
[0014]优选地,所述服务器还用于根据所述客户端发送的查询条件,向所述分布式数据库发送查询请求,以对所述分布式数据库内存储的描述内容进行检索;所述分布式数据库还用于根据所述查询请求从所述分布式文件系统索取所请求的原始文件的存储节点,并向所述服务器返回检索结果;所述客户端还用于根据所述服务器返回的所述检索结果,从所述分布式文件系统获取所请求的原始文件。
[0015]优选地,所述分布式文件系统设置为多节点存储,所述分布式文件系统根据容量和/或带宽来选择存储节点进行存储和/或获取操作;和/或所述分布式数据库设置为多节点记录。所述分布式数据库根据容量和/或带宽来选择记录节点进行记录和/或查询操作。
[0016]为了结合文件存储实现可扩展的存储,本发明基于诸如FastDFS的分布式文件系统和诸如Hbase的分布式数据库的结合,使用分布式文件系统来存储原始文件,使用分布式数据库来记录存储文件的属性状态等文件附加记录,这样同时进行记录和文件的存储,使得存储系统有很好的扩展性,并且可以对存储的文件进行内容的分类和检索,实现了存储的数据与现有业务数据的结合。

【专利附图】

【附图说明】
[0017]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0018]图1示出了根据本发明实施例的分布式文件存储方法;
[0019]图2示出了根据本发明实施例的分布式文件查询方法;
[0020]图3示出了根据本发明另一实施例的分布式文件存储方法;
[0021]图4示出了根据本发明另一实施例的分布式文件查询方法;
[0022]图5示出了根据本发明实施例的分布式文件存取系统。

【具体实施方式】
[0023]下面将结合附图对本发明的实施例进行详细描述。
[0024]图1示出了根据本发明实施例的分布式文件存储方法。如图1所示,该方法包括如下步骤:
[0025]步骤SlOl:客户端向服务器上传打包文件。
[0026]客户端可以是网页、移动终端,其可以通过socket将打包文件传输到服务器,打包文件包括原始文件和对原始文件进行描述的描述文件。
[0027]步骤S102:服务器在接收到整个打包文件后对其进行解压,并对解压出的描述文件进行解析,以解析出描述文件的描述内容。
[0028]步骤S103:服务器将解压出的原始文件传输到分布式文件系统(例如,FastDFS)进行存储。
[0029]优选地,分布式文件系统可以设置为多节点存储。多节点存储可以解决很多实际应用场景遇到的问题,主要解决容量和带宽问题,例如在当前节点的存储空间不足时,多节点存储可以自动把未存储的部分存放到其他存储节点;在当前节点访问的用户过多时,月艮务会告知客户端连接其他存储节点;还可以将同一文件在奇数号和偶数号存储节点各放置一份,以防止单节点故障,从而实现可靠的存储。
[0030]步骤S104:分布式文件系统向服务器返回原始文件存储的网络地址。
[0031]分布式文件系统中具有主机,分布式文件系统通过其中的主机将原始文件存储的网络地址传输到服务器。
[0032]步骤S105:服务器向分布式数据库(例如,Hbase)传输原始文件存储的网络地址和解析出的描述内容,以便于统计和查找。
[0033]优选地,分布式数据库可以设置为多节点记录。多节点记录同样也是解决容量和带宽问题,以实现可靠的存储和高效的查询。
[0034]图2示出了根据本发明实施例的分布式文件查询方法。如图2所示,该方法包括如下步骤:
[0035]步骤S201:客户端向服务器发送查询条件。
[0036]查询条件可以是所需要请求的原始文件名称或者其他过滤条件,比如修改时间、上传时间、原始文件大小、原始文件类型等。
[0037]步骤S202:服务器根据接收到的查询条件,向分布式数据库发送查询请求,以对分布式数据库内存储的原始文件的描述内容进行检索。
[0038]步骤S203:分布式数据库根据查询请求从分布式文件系统索取所请求的原始文件存储的网络地址,并向服务器返回检索结果。
[0039]步骤S204:服务器将检索结果返回到客户端。
[0040]优选地,服务器可以将检索结果组织成规范的json串返回到客户端。
[0041]步骤S205:客户端解析服务器返回的检索结果,从分布式文件系统获取所请求的原始文件,以执行展示和下载等操作。
[0042]图3示出了根据本发明另一实施例的分布式文件存储方法。在该存储方法中,分布式文件系统为多节点存储,分布式数据库为多节点记录,该方法包括如下步骤:
[0043]步骤S301:客户端向服务器上传打包文件。
[0044]步骤S302:服务器在接收到整个打包文件后对其进行解压,并对解压出的描述文件进行解析,以解析出描述文件的描述内容。
[0045]步骤S303:服务器向多节点存储的分布式文件系统发送存储指令。
[0046]步骤S304:分布式文件系统根据容量和/或带宽,向服务器发送用于存储原始文件的存储节点的信息。
[0047]分布式文件系统内的主机判断各个存储节点的容量和/或带宽,从中选取一个或多个存储节点。根据客户端的需求,当存储的文件比较重要,需要多存储节点备份时,选取多个存储节点,从而可将同一文件存放在多个存储节点内,以防止单节点故障,实现可靠的存储。
[0048]步骤S305:服务器将原始文件传输到分布式文件系统的该存储节点内,以进行存储。
[0049]步骤S306:分布式文件系统向服务器返回原始文件存储的该存储节点及该存储节点内的网络地址。
[0050]步骤S307:服务器向多节点记录的分布式数据库发送记录指令。
[0051]步骤S308:分布式数据库根据容量和/或带宽,向服务器发送用于存储原始文件的存储节点、该存储节点内的网络地址和解析出的描述内容的记录节点的信息。
[0052]分布式数据库内的主机判断各个记录节点的容量和/或带宽,从中选取一个或多个记录节点。根据客户端的需求,当存储的文件比较重要,需要多记录节点备份时,选取多个记录节点,从而可将同一信息记录在多个记录节点内,以防止单节点故障,实现可靠的查询。
[0053]步骤S309:服务器将用于存储原始文件的存储节点、该存储节点内的网络地址和解析出的描述内容记录在分布式数据库的该记录节点内,以便于统计和查找。
[0054]由此,完成了分布式文件系统为多节点存储、分布式数据库为多节点记录的分布式文件存储方法,实现了可靠、高效的存储。本领域技术人员可以理解,在该分布式文件存储方法中,不一定需要同时采用多节点存储的分布式文件系统和多节点记录的分布式数据库这两者,而可以仅采用多节点存储的分布式文件系统,或者仅采用多节点记录的分布式数据库,本实施例并非意在限定本发明。
[0055]图4示出了根据本发明另一实施例的分布式文件查询方法。在该查询方法中,分布式文件系统为多节点存储,分布式数据库为多节点记录,该方法包括如下步骤:
[0056]步骤S401:客户端向服务器发送查询条件。
[0057]步骤S402:服务器根据接收到的查询条件,向分布式数据库发送查询请求,以对分布式数据库内存储的描述内容进行检索。
[0058]步骤S403:分布式数据库根据查询请求从记录有该描述内容的记录节点中选择带宽较大的记录节点来执行该查询请求。
[0059]步骤S404:分布式数据库内带宽较大的记录节点从分布式文件系统索取所请求的原始文件存储的存储节点和该存储节点内的网络地址。
[0060]步骤S405:分布式文件系统在存储有所请求的原始文件的存储节点中选择带宽较大的存储节点,并将该存储节点和该存储节点内所请求的原始文件的网络地址发送回分布式数据库。
[0061]步骤S406:分布式数据库将检索结果返回给服务器。
[0062]步骤S407:服务器将检索结果返回到客户端。
[0063]步骤S408:客户端解析服务器返回的检索结果,从分布式文件系统的该存储节点内的网络地址获取所请求的原始文件,以执行展示和下载等操作。
[0064]由此,完成了分布式文件系统为多节点存储、分布式数据库为多节点记录的分布式文件查询方法。本领域技术人员可以理解,在该分布式文件查询方法中,不一定需要同时采用多节点存储的分布式文件系统和多节点记录的分布式数据库这两者,而可以仅采用多节点存储的分布式文件系统,或者仅采用多节点记录的分布式数据库,本实施例并非意在限定本发明。
[0065]图5示出了根据本发明实施例的分布式文件存取系统。如图3所示,该系统包括客户端、服务器、分布式文件系统和分布式数据库,其中:客户端501用于向服务器502上传打包文件,打包文件包括原始文件和描述文件;服务器502用于对接收到的打包文件进行解压,对描述文件进行解析,以解析出描述文件的描述内容,并分别向分布式文件系统504和分布式数据库503传输文件;分布式文件系统504用于存储服务器502传输的原始文件,并将原始文件存储的网络地址返回至服务器502 ;分布式数据库503用于存储服务器502传输的原始文件存储的网络地址和解析出的描述内容。
[0066]更进一步地,服务器502还用于根据客户端501发送的查询条件,向分布式数据库503发送查询请求,以对分布式数据库503内存储的描述内容进行检索;分布式数据库503还用于根据查询请求从分布式文件系统504索取所请求的原始文件的网络地址,并向服务器502返回检索结果;客户端501还用于根据服务器返回的检索结果,从分布式文件系统504获取所请求的原始文件。
[0067]优选地,分布式文件系统504可以设置为多节点存储,以根据容量和/或带宽来选择存储节点进行存储和/或获取操作;和/或分布式数据库503可以设置为多节点记录。以根据容量和/或带宽来选择记录节点进行记录和/或查询操作。
[0068]通过采用本发明所公开的分布式文件存储和查询方法及存取系统,可以对存储的文件进行内容的分类和检索,实现了存储的数据与现有业务数据的结合。
[0069]虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
【权利要求】
1.一种分布式文件存储方法,包括: 向服务器上传打包文件,所述打包文件包括原始文件和对所述原始文件进行描述的描述文件; 所述服务器对所述打包文件进行解压,并对解压出的所述描述文件进行解析,以解析出所述描述文件的描述内容; 所述服务器将解压出的所述原始文件传输到分布式文件系统; 所述分布式文件系统向所述服务器返回所述原始文件存储的网络地址; 所述服务器将所述原始文件存储的网络地址和解析出的所述描述内容传输到分布式数据库。
2.根据权利要求1所述的分布式文件存储方法,其中,当所述分布式文件系统配置为多节点存储时,所述服务器将解压出的所述原始文件传输到分布式文件系统以及所述分布式文件系统向所述服务器返回所述原始文件存储的网络地址包括: 所述服务器向多节点存储的所述分布式文件系统发送存储指令; 所述分布式文件系统根据容量和/或带宽,向所述服务器发送用于存储所述原始文件的存储节点的信息; 所述服务器将所述原始文件传输到分布式文件系统的该存储节点内,以进行存储;所述分布式文件系统向所述服务器返回所述原始文件存储的存储节点及所述存储节点内的网络地址。
3.根据权利要求1或2所述的分布式文件存储方法,其中,当所述分布式数据库配置为多节点记录时,所述服务器将所述原始文件存储的网络地址和解析出的所述描述内容传输到分布式数据库包括: 所述服务器向多节点记录的所述分布式数据库发送记录指令; 所述分布式数据库根据容量和/或带宽,向所述服务器发送用于存储所述原始文件存储的网络地址和解析出的描述内容的记录节点的信息; 所述服务器将用于存储所述原始文件存储的网络地址和解析出的描述内容记录在所述分布式数据库的所述记录节点内。
4.一种分布式文件查询方法,包括: 向服务器发送查询条件; 所述服务器根据接收到的查询条件,向分布式数据库发送查询请求,以对所述分布式数据库内存储的原始文件的描述内容进行检索; 所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果; 所述服务器返回所述检索结果; 对所述检索结果进行解析,从所述分布式文件系统获取所请求的原始文件。
5.根据权利要求4所述的分布式文件查询方法,其中,当所述分布式数据库配置为多节点记录时,所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果包括: 所述分布式数据库根据所述查询请求从记录有所述描述内容的记录节点中选择带宽较大的记录节点来执行所述查询请求; 所述分布式数据库内所述带宽较大的记录节点从所述分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果。
6.根据权利要求4或5所述的分布式文件查询方法,其中,当所述分布式文件系统配置为多节点存储时,所述分布式数据库根据所述查询请求从分布式文件系统索取所请求的原始文件存储的网络地址并向所述服务器返回检索结果包括: 所述分布式文件系统在存储有所请求的原始文件的存储节点中选择带宽较大的存储节点,并将所述存储节点和所述存储节点内所请求的原始文件的网络地址发送回所述分布式数据库; 所述分布式数据库将检索结果返回给所述服务器; 并且,从所述分布式文件系统获取所请求的原始文件包括: 从所述分布式文件系统的所述带宽较大的存储节点内的所请求的原始文件的网络地址获取所请求的原始文件。
7.根据权利要求4所述的方法,其中: 所述查询条件是所请求的原始文件的名称、修改时间、上传时间、原始文件大小、原始文件类型中的至少一项。
8.—种分布式文件存取系统,包括:客户端、服务器、分布式文件系统和分布式数据库,其中: 所述客户端用于向所述服务器上传打包文件,所述打包文件包括原始文件和对所述原始文件进行描述的描述文件; 所述服务器,用于对接收到的所述打包文件进行解压,对所述描述文件进行解析,以解析出所述描述文件的描述内容,将解压出的原始文件传输到分布式文件系统;并将分布式文件系统发来的所述原始文件存储的网络地址以及解析出的所述描述内容传输到分布式数据库; 所述分布式文件系统用于存储所述服务器传输的所述原始文件,并将所述原始文件存储的网络地址返回至所述服务器; 所述分布式数据库用于存储所述服务器传输的所述原始文件存储的网络地址和解析出的所述描述内容。
9.根据权利要求8所述的系统,其中: 所述服务器还用于根据所述客户端发送的查询条件,向所述分布式数据库发送查询请求,以对所述分布式数据库内存储的描述内容进行检索; 所述分布式数据库还用于根据所述查询请求从所述分布式文件系统索取所请求的原始文件的存储节点,并向所述服务器返回检索结果; 所述客户端还用于根据所述服务器返回的所述检索结果,从所述分布式文件系统获取所请求的原始文件。
10.根据权利要求9或10所述的系统,其中: 所述分布式文件系统设置为多节点存储,所述分布式文件系统根据容量和/或带宽来选择存储节点进行存储和/或获取操作;和/或 所述分布式数据库设置为多节点记录。所述分布式数据库根据容量和/或带宽来选择记录节点进行记录和/或查询操作。
【文档编号】H04L29/08GK104462129SQ201310432666
【公开日】2015年3月25日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】王炜 申请人:北大方正集团有限公司, 北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1