CN105843841A - 一种小文件存储方法和*** - Google Patents
一种小文件存储方法和*** Download PDFInfo
- Publication number
- CN105843841A CN105843841A CN201610127995.7A CN201610127995A CN105843841A CN 105843841 A CN105843841 A CN 105843841A CN 201610127995 A CN201610127995 A CN 201610127995A CN 105843841 A CN105843841 A CN 105843841A
- Authority
- CN
- China
- Prior art keywords
- small documents
- file
- key word
- incidence relation
- documents
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000012545 processing Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 14
- 239000000203 mixture Substances 0.000 claims description 7
- 238000007781 pre-processing Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
-
- 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/13—File access structures, e.g. distributed indices
- G06F16/134—Distributed indices
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开一种小文件存储方法和***,所述方法和***基于各个待存储小文件的语义描述信息,确定各个小文件之间的关联关系,在此基础上,基于所确定的各个所述小文件间的关联关系,实现对各个待存储的小文件进行合并存储。可见,本申请提出了一种基于语义关联角度的小文件合并存储策略,应用本申请可实现将关联性较为密切的小文件进行合并,进而可有效提高小文件的读取效率。
Description
技术领域
本发明属于计算机分布式存储技术领域,尤其涉及一种小文件存储方法和***。
背景技术
随着互联网的快速发展,云存储开始被广泛运用于海量互联网数据的存储中,云存储通过整合网络中大量不同类型的存储设备来共同形成一个提供外界存储和业务访问的***,目前,能够提供云存储的分布式***有很多,如HDFS(Hadoop Distributed File System,分布式文件***)、Google的GFS(Google File System,谷歌文件***)等。
在目前的互联网环境下,小文件占有较大比重,对于解决小文件云存储的研究基本上都是基于文件合并的策略,通过将大量小文件进行合并,来减少平台的文件数目,减轻分布式文件***用于存放文件元数据的内存压力;同时小文件合并为大文件后,能够明显提高其硬盘读写速率,节省文件存储消耗的时间。然而,当前进行小文件的合并时一般不考虑文件间的彼此联系,文件合并仅仅是对上传的各个小文件直接进行合并,并没有给出相关的合并策略用来提高小文件的读取效率。
发明内容
有鉴于此,本发明的目的在于提供一种小文件存储方法和***,旨在通过将关联性较为密切的小文件进行合并及存储,来提高小文件的读取效率。
为此,本发明公开如下技术方案:
一种小文件存储方法,包括:
获取待存储的多个小文件的语义描述信息;
基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系;
基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件;
存储所述至少一个大文件。
上述方法,优选的,所述获取待存储的多个小文件的语义描述信息包括:
获取待存储的多个小文件的关键词。
上述方法,优选的,所述基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系包括:
计算各个所述小文件的关键词之间的语义相似度;
基于所述语义相似度,对各个所述小文件的关键词进行预设的聚类处理;其中,聚类处理结果中同簇的关键词之间具有较高的语义相似度;
依据聚类处理结果,确定各个所述小文件间的关联关系。
上述方法,优选的,还包括以下的预处理过程:
依据预先设定的小文件识别标准,对上传的待存储文件进行小文件识别。
上述方法,优选的,在存储所述至少一个大文件之前,还包括:
利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;
依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
上述方法,优选的,还包括:
基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
一种小文件存储***,包括:
描述信息获取模块,用于获取待存储的多个小文件的语义描述信息;
关联关系确定模块,用于基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系;
小文件合并模块,用于基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件;
存储模块,用于存储所述至少一个大文件。
上述***,优选的,所述描述信息获取模块包括:
关键词获取单元,用于获取待存储的多个小文件的关键词。
上述***,优选的,所述关联关系确定模块包括:
计算单元,用于计算各个所述小文件的关键词之间的语义相似度;
聚类处理单元,用于基于所述语义相似度,对各个所述小文件的关键词进行预设的聚类处理;其中,聚类处理结果中同簇关键词之间具有较高的语义相似度;
关联关系确定单元,用于依据聚类处理结果,确定各个所述小文件间的关联关系。
上述***,优选的,还包括:
小文件识别模块,用于依据预先设定的小文件识别标准,对上传的待存储文件进行小文件识别。
上述***,优选的,还包括索引创建模块,所述索引创建模块包括:
第一索引创建单元,用于利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;
第二索引创建单元,用于依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
上述***,优选的,还包括:
小文件读取模块,用于基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
由以上方案可知,本申请公开的小文件存储方法和***,基于各个待存储小文件的语义描述信息,确定各个小文件之间的关联关系,在此基础上,基于所确定的各个所述小文件间的关联关系,实现对各个待存储的小文件进行合并存储。可见,本申请提出了一种基于语义关联角度的小文件合并存储策略,应用本申请可实现将关联性较为密切的小文件进行合并,进而可有效提高小文件的读取效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的小文件存储方法流程图;
图2是本发明实施例一提供的分布式文件***的整体架构图;
图3是本发明实施例二提供的小文件存储方法流程图;
图4是本发明实施例三提供的小文件存储方法流程图;
图5-图8是本发明实施例四提供的小文件存储***的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
Lucene:是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标***中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻,在Java开发环境里Lucene是一个成熟的免费开源工具。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一公开一种小文件存储方法,参考图1,所述小文件存储方法可以包括以下步骤:
S101:获取待存储的多个小文件的语义描述信息。
云平台中存储的小文件大部分都是彼此联系的,逻辑上是相互关联的,针对这种关联性,本申请给出一种基于语义的文件合并策略将关联性较为密切的小文件进行合并,同时控制合并后形成的大文件的大小,确保合并后得到的大文件不超出分布式框架的默认存储对象大小,以避免小文件的跨块(块即指大文件)存储。
参考图2示出的分布式文件存储的典型应用场景,本实施例具体以图2中的分布式文件***为例对本申请方法进行说明。当用户有文件存储需求时,可向Web服务器上传文件,并对文件进行关键词描述作为文件的元数据,其中关键词需要以简洁为主,且能较好的概括文件的主题。关键词与文件的其它相关信息,如文件名称、大小、类型、上传时间等共同作为文件的元数据保存到数据库的相关文件记录中。
Web服务器需对用户上传的文件进行大小识别,之后可对不同大小的文件采取不同策略进行处理。小文件对Ceph(分布式文件***)的瓶颈主要体现在文件的写入、读取和数据迁移,基于此,本申请通过计算不同大小的文件上传到Ceph或从Ceph下载到本地的平均速率,来确定大小文件的界定/识别标准。在此基础上,Web服务器利用该标准对用户上传的文件进行大小文件识别,如果识别结果为大文件,则直接将该文件上传至Ceph集群进行云存储,否则,如果识别结果为小文件,则缓存小文件,并利用本申请提供的小文件合并存储策略实现小文件的合并存储。
对于缓存的各个待存储小文件,Web服务器需首先获取各个小文件的语义描述信息,所述语义描述信息具体可以是小文件的关键词描述信息,该信息可从用户所上传文件的元数据中提取。
S102:基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系。
在获取各个待存储小文件的关键词之后,本步骤具体依据小文件关键词之间的语义相似度,来确定小文件间的关联关系,其中,关键词之间的语义相似度越高,则表征关键词所对应小文件之间的关联性越紧密。
本申请利用已经训练好的语料集,使用word2vec工具对关键词间的语义相似度进行计算,并且采用知网进行补充,从而利用两者间的共同结果对词间相关度进行定义,设立word2vec的权重为α,知网的权重为β,则关键词W1与W2之间的语义相似度定义如下:
Sim(W1,W2)=αSimw2v(W1,W2)+βSimHN(W1,W2) (1)
式(1)中,Sim(W1,W2)表示关键词W1与W2之间的相关度即语义相似度,Simw2v(W1,W2)表示利用Word2Vec工具计算的词W1,W2间的相关度,SimHN(W1,W2)表示的是利用知网进行计算的词W1,W2间的相关度。
在定义词间语义相似度的基础上,本申请具体通过对各个待存储小文件的关键词进行预设的聚类处理,实现对各个小文件的关键词进行分簇,使得聚类处理结果中同簇的关键词之间具有较高的语义相似度;相对应地,在对小文件关键词进行分簇的基础上,可依据小文件与关键词之间的对应关系,对处于缓冲区的待存储小文件进行逻辑划分,将同簇关键词对应的小文件划分在同一逻辑单元中,同属一个逻辑单元的小文件彼此间具有较高的语义相关度。
接下来对各个小文件关键词的聚类处理过程进行描述,该过程具体包括:
1)关键词的初步聚类(最近邻聚类)
将多个小文件的n个关键词(其中,一个小文件对应一个关键词,同一个关键词可能对应多个小文件,即小文件与关键词间的对应关系为N:1)映射到一组不相交集合D={D1,D2…Dn},每个集合即为一个簇,计算集合中关键词两两之间的语义相似度,并将计算出的相似度数值按降序排序;在此基础上,依次取出相似度值sim(Wi,Wj),直至sim(Wi,Wj)小于预设阈值时停止,之后,分别找出所取出sim(Wi,Wj)中(Wi,Wj)所属的集合Di与Dj,合并Di与Dj为一个新的簇,即为一个新的集合,并删除原来的集合Di与Dj。由于文件相关的关系具有对称性与传递性,所以根据新的集合分布,可以建立一个无向非连通图,然后从各个结点出发对该图进行深度优先遍历,从而将相关的结点(关键词)都放到一个集合中,即完成了一次关键词聚类的迭代。经过一次迭代后的不相交集合结构如下:
D1={W1,W2…Wi};
D2={W3,W6…Wj};
……
Dm={Wn,Wt…Wk}。
经过以上处理后,集合的数目已经发生变化,许多关键词已经被分到相应的集合(簇)中,从而实现了关键词的初步聚类。
2)簇间迭代聚类
经过关键词的初步聚类后,已初步划分了相应的簇,此时将会得到很多的簇,在此基础上,本步考虑继续对关键词初步聚类后得到的多个簇进行迭代聚类,从而将关联密切的簇进行合并。
簇间迭代聚类具体采用以下步骤实现:
步骤一,提取各簇的特征表示;
经过关键词的初步聚类后,有的簇中已经具有了多个关键词,对于关键词数目较多的簇,本申请考虑对簇的特征(簇的每一个关键词表征簇的一个特征)进行降维,将簇的特征用几个比较有代表性的关键词进行描述。
其中,本申请具体通过对簇内关键词进行一次聚类实现簇特征提取,然后针对每个簇,将簇内聚类后得到的各个子簇按其拥有的关键词个数进行降序排序,在此基础上将关键词数目最大的子簇,作为该簇的特征表示(同时需要限制特征子簇的最大关键词数目)。例如,假设簇D1={W1,W2…Wi}经过簇内关键词的一次聚类后划分为以下子簇:D1={(W1,W7,W11),…(Wi,Wj)},则可选用(W1,W7,W11)作为簇D1的特征表示,即相当于更新了簇中心,以用于下一步的簇聚类。
步骤二,计算两两簇之间的相关度值,并进行保存;
在对关键词初步聚类后得到的各个簇进行簇特征提取后,接下来继续利用提取的簇特征计算各个簇之间的相似度,簇间相似度计算方式具体如下:
假设簇Di={Wi1,Wi2…Win},Dj={Wj1,Wj2…Wjm},则簇Di与Dj间的相似度为:
式(2)中,Sim(Di,Dj)表示的是簇Di与Dj间的相似度,Sim(Wip,Wjq)是簇间特征关键词间的相似度值。即综合利用簇间两两特征关键词计算得出的相关度值来有效表示簇间的相关度,其中,簇的特征关键词即指簇的特征表示中所包含的关键词。
步骤三,将簇间相关度值按照降序排序;
步骤四,从降序序列中按序取出sim(Di,Dj),直至sim(Di,Dj)小于预设阈值时终止;之后将所取出sim(Di,Dj)对应的簇Di与Dj合并为一个簇Dk,从而实现将两个簇中的所有关键词合并至一个集合之中;
步骤五,判断簇的数目是否发生了变化或者迭代次数是否达到一定次数,若满足条件则迭代完成,若不符合条件则继续执行步骤一。
在依次经过关键词的初步聚类及簇间迭代聚类后,可实现将各个待存储小文件的关键词进行分簇,其中,同簇关键词之间具有较高的语义相似度。由于关键词与小文件之间具有相应的对应关系,因此,可基于关键词的分簇结果,对处于缓冲区的待存储小文件进行逻辑划分,将同簇关键词对应的小文件划分在同一逻辑单元中,同属一个逻辑单元的文件彼此相关度高,具有较高的语义关联度。
S103:基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件。
在对缓存的待存储小文件进行逻辑划分,得到一个或多个逻辑单元后,本步骤继续依据小文件的逻辑划分结果,对同属一个逻辑单元的小文件进行文件合并处理。
其中,为了避免文件读取时耗时过多,则合并所得的文件不应该太大,也就是说,对于包含的小文件数量/数据量较大的逻辑单元,不应该将该逻辑单元中的所有小文件都合并到一个大文件中,而是需将该逻辑单元中的各个小文件合并为多个大文件,即逻辑单元与合并文件可以是一对多的关系。
假设大小文件的分割线是BS,由于文件缓冲区的文件都是经过小文件识别后所得的小文件,从而缓冲区中所有文件的大小都将小于BS。为了达到文件预取效率高这一目的,在进行小文件合并时,首先将同一个逻辑单元中的所有小文件按照文件大小进行排序,然后按照文件的顺序依次将小文件进行合并,每当一次合并所得的文件大于BS时,此次合并结束,然后接着进行下一次合并。此种策略既可以保证合并后所得文件的传输读写效率与大文件相同,又同时能够保证在小文件预取时具有最大命中率。
具体地,***在实现文件合并时将小文件数据转换为二进制数据,并在每次合并时都在上一小文件的尾部进行数据追加,同时记录好本次所合并小文件的起始位置和小文件所占有的长度大小,这样便可在需要该小文件时通过提取指定长度的数据来还原小文件本身。
S104:存储所述至少一个大文件。
在对小文件进行合并得到大文件之后,可将合并所得的大文件进行所需的分布式存储,具体地,参考图2,Web服务器在合并小文件得到大文件后,可通过相应的接口服务将大文件上传到Ceph存储集群的指定Bucket(数据桶)之上,从而最终实现小文件的云存储。
由以上方案可知,本申请公开的小文件存储方法,基于各个待存储小文件的语义描述信息,确定各个小文件之间的关联关系,在此基础上,基于所确定的各个所述小文件间的关联关系,实现对各个待存储的小文件进行合并存储。可见,本申请提出了一种基于语义关联角度的小文件合并存储策略,应用本申请可实现将关联性较为密切的小文件进行合并,进而可有效提高小文件的读取效率。
实施例二
本实施例继续对实施例一的方案进行补充,参考图3,本实施例中,在所述步骤S104之前还可以包括以下步骤:
S105:利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
文件检索对于任何平台都是不可缺少的,在存储文件的同时,需要同时为文件的检索功能提供支持,也就是说,需要能够根据用户输入的检索词定位到所需的文件,基于此,为了对文件检索提供支持,本实施例利用各个小文件的关键词为小文件建立倒排索引,从而形成关键词→小文件ID(Identity,身份标识号)的映射,本实施例具体使用Lucene对小文件的关键词描述建立倒排索引,参考图2,倒排索引建立完成后,便可生成索引文件库并对其进行存储,从而后续可依据输入的检索词进行小文件的快速检索与定位。
接下来通过一个实例简单说明倒排索引的创建过程,该实例提供三个图片(相当于3个小文件)的简介描述:
a,北京的天安门。
b,圆明园的遗址。
c,天安门与圆明园都是北京的景区。
对其进行分词预处理后可得到:
a,[北京][天安门]。
b,[圆明园][遗址]。
c,[天安门][圆明园][北京][景区]。
继续对上述各图片的分词进行倒排索引处理,可得到如表1所示的倒排表:
表1
除了为各个小文件建立倒排索引,本实施例还根据小文件的合并情况建立小文件与大文件之间的映射关系,同时记录小文件在相应大文件中的位置信息,并在相应的数据库服务器中存储所述映射关系及所述位置信息。所述倒排索引、小文件与大文件的映射关系、小文件在大文件中的位置信息可共同为小文件的索引信息,为后续小文件的检索、定位、读取提供支持。
实施例三
在实施例二方案的基础上,参考图4,本实施例中,所述小文件存储方法还可以包括以下步骤:
S106:基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
在以上实施例的基础上,本实施例提供小文件的读取方案,小文件的读取可分为文件检索与文件下载两步,其中,文件检索具体可在接收到用户输入的检索词后,采用Lucene对创建的倒排索引进行检索,从而得到符合检索词的结果列表,该列表包括一个或多个小文件ID,之后,继续利用检索后得到的小文件ID进行数据库查询,得到小文件所在的合并文件即大文件ID,然后,根据查询得到的大文件ID向Ceph集群发出文件读取请求。
Ceph集群接收到该请求后,定位到相应Bucket得到所需的大文件,由于合并后得到的大文件在Ceph上通过对象进行存储,从而在每次读取小文件时都需要对小文件所在的大文件进行整体下载并缓存,之后可通过对下载并缓存的大文件进行拆解,并根据小文件在大文件中的位置信息得到所需的小文件。
其中,需要说明的是,由于本申请在对小文件进行云存储时,基于小文件语义将关联较为紧密的小文件进行合并存储,从而在对小文件进行下载、读取时,可有效提高相关度较高的小文件的读取效率。
实施例四
本实施例公开一种小文件存储***,所述小文件存储***与以上各实施例公开的小文件存储方法相对应。
相应于实施例一,参考图5,所述***可以包括描述信息获取模块100、关联关系确定模块200、小文件合并模块300和存储模块400。
描述信息获取模块100,用于获取待存储的多个小文件的语义描述信息。
其中,所述描述信息获取模块100包括关键词获取单元,用于获取待存储的多个小文件的关键词。
关联关系确定模块200,用于基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系。
所述关联关系确定模块200包括计算单元、聚类处理单元和关联关系确定单元。
计算单元,用于计算各个所述小文件的关键词之间的语义相似度;
聚类处理单元,用于基于所述语义相似度,对各个所述小文件的关键词进行预设的聚类处理;其中,聚类处理结果中同簇关键词之间具有较高的语义相似度;
关联关系确定单元,用于依据聚类处理结果,确定各个所述小文件间的关联关系。
小文件合并模块300,用于基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件。
存储模块400,用于存储所述至少一个大文件。
以上各模块或单元的功能实现需要建立在小文件识别的预处理基础之上,因此,参考图6,所述***还包括小文件识别模块500,该模块用于依据预先设定的小文件识别标准,对上传的待存储文件进行小文件识别。
相应于实施例二,参考图7,所述***还可以包括索引创建模块600,该模块包括第一索引创建单元和第二索引创建单元。
第一索引创建单元,用于利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;
第二索引创建单元,用于依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
相应于实施例三,参考图8,所述***还可以包括小文件读取模块700,用于基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
对于本发明实施例四公开的小文件存储***而言,由于其与实施例一至实施例三公开的小文件存储方法相对应,所以描述的比较简单,相关相似之处请参见实施例一至实施例三中小文件存储方法部分的说明即可,此处不再详述。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上***或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (12)
1.一种小文件存储方法,其特征在于,包括:
获取待存储的多个小文件的语义描述信息;
基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系;
基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件;
存储所述至少一个大文件。
2.根据权利要求1所述的方法,其特征在于,所述获取待存储的多个小文件的语义描述信息包括:
获取待存储的多个小文件的关键词。
3.根据权利要求2所述的方法,其特征在于,所述基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系包括:
计算各个所述小文件的关键词之间的语义相似度;
基于所述语义相似度,对各个所述小文件的关键词进行预设的聚类处理;其中,聚类处理结果中同簇的关键词之间具有较高的语义相似度;
依据聚类处理结果,确定各个所述小文件间的关联关系。
4.根据权利要求1-3任意一项所述的方法,其特征在于,还包括以下的预处理过程:
依据预先设定的小文件识别标准,对上传的待存储文件进行小文件识别。
5.根据权利要求2-3任意一项所述的方法,其特征在于,在存储所述至少一个大文件之前,还包括:
利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;
依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
6.根据权利要求5所述的方法,其特征在于,还包括:
基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
7.一种小文件存储***,其特征在于,包括:
描述信息获取模块,用于获取待存储的多个小文件的语义描述信息;
关联关系确定模块,用于基于各个所述小文件的语义描述信息,确定各个所述小文件间的关联关系;
小文件合并模块,用于基于各个所述小文件间的关联关系,对各个所述小文件进行文件合并处理,得到至少一个大文件;
存储模块,用于存储所述至少一个大文件。
8.根据权利要求7所述的***,其特征在于,所述描述信息获取模块包括:
关键词获取单元,用于获取待存储的多个小文件的关键词。
9.根据权利要求8所述的***,其特征在于,所述关联关系确定模块包括:
计算单元,用于计算各个所述小文件的关键词之间的语义相似度;
聚类处理单元,用于基于所述语义相似度,对各个所述小文件的关键词进行预设的聚类处理;其中,聚类处理结果中同簇关键词之间具有较高的语义相似度;
关联关系确定单元,用于依据聚类处理结果,确定各个所述小文件间的关联关系。
10.根据权利要求7-9任意一项所述的***,其特征在于,还包括:
小文件识别模块,用于依据预先设定的小文件识别标准,对上传的待存储文件进行小文件识别。
11.根据权利要求8-9任意一项所述的***,其特征在于,还包括索引创建模块,所述索引创建模块包括:
第一索引创建单元,用于利用各个所述小文件的关键词,为各个所述小文件建立倒排索引;
第二索引创建单元,用于依据所述文件合并处理的处理结果,确定各个所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息。
12.根据权利要求11所述的***,其特征在于,还包括:
小文件读取模块,用于基于所述倒排索引、所述小文件与相应大文件之间的映射关系及各个所述小文件在相应大文件中的位置信息进行所需的小文件读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610127995.7A CN105843841A (zh) | 2016-03-07 | 2016-03-07 | 一种小文件存储方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610127995.7A CN105843841A (zh) | 2016-03-07 | 2016-03-07 | 一种小文件存储方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105843841A true CN105843841A (zh) | 2016-08-10 |
Family
ID=56587046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610127995.7A Pending CN105843841A (zh) | 2016-03-07 | 2016-03-07 | 一种小文件存储方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105843841A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446079A (zh) * | 2016-09-08 | 2017-02-22 | 中国科学院计算技术研究所 | 一种面向分布式文件***的文件预取/缓存方法及装置 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN106776370A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于对象关联性评估的云存储方法及装置 |
CN106897587A (zh) * | 2017-02-27 | 2017-06-27 | 百度在线网络技术(北京)有限公司 | 加固应用、加载加固应用的方法和装置 |
CN107341267A (zh) * | 2017-07-24 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种分布式文件***访问方法及平台 |
CN109766318A (zh) * | 2018-12-17 | 2019-05-17 | 新华三大数据技术有限公司 | 文件读取方法及装置 |
CN109947721A (zh) * | 2017-12-01 | 2019-06-28 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
CN110069466A (zh) * | 2019-04-15 | 2019-07-30 | 武汉大学 | 一种面向分布式文件***的小文件存储方法及装置 |
CN110069455A (zh) * | 2017-09-21 | 2019-07-30 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
CN110297810A (zh) * | 2019-07-05 | 2019-10-01 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
CN111475469A (zh) * | 2020-03-19 | 2020-07-31 | 中山大学 | Kubernetes用户态应用中基于虚拟文件***的小文件存储优化*** |
CN111930684A (zh) * | 2020-07-28 | 2020-11-13 | 苏州亿歌网络科技有限公司 | 基于hdfs的小文件处理方法、装置、设备及存储介质 |
CN112241396A (zh) * | 2020-10-27 | 2021-01-19 | 浪潮云信息技术股份公司 | 基于Spark的对Delta进行小文件合并的方法及*** |
CN112422448A (zh) * | 2020-08-21 | 2021-02-26 | 苏州浪潮智能科技有限公司 | Fpga加速卡网络数据传输方法及相关组件 |
CN118132520A (zh) * | 2024-05-08 | 2024-06-04 | 济南浪潮数据技术有限公司 | 存储***文件处理方法、电子设备、存储介质及程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225207B1 (en) * | 2001-10-10 | 2007-05-29 | Google Inc. | Server for geospatially organized flat file data |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN103678491A (zh) * | 2013-11-14 | 2014-03-26 | 东南大学 | 一种基于Hadoop中小文件优化和倒排索引的方法 |
CN104765876A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军信息工程大学 | 海量gnss小文件云存储方法 |
CN105183839A (zh) * | 2015-09-02 | 2015-12-23 | 华中科技大学 | 一种基于Hadoop的小文件分级索引的存储优化方法 |
-
2016
- 2016-03-07 CN CN201610127995.7A patent/CN105843841A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7225207B1 (en) * | 2001-10-10 | 2007-05-29 | Google Inc. | Server for geospatially organized flat file data |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN103678491A (zh) * | 2013-11-14 | 2014-03-26 | 东南大学 | 一种基于Hadoop中小文件优化和倒排索引的方法 |
CN104765876A (zh) * | 2015-04-24 | 2015-07-08 | 中国人民解放军信息工程大学 | 海量gnss小文件云存储方法 |
CN105183839A (zh) * | 2015-09-02 | 2015-12-23 | 华中科技大学 | 一种基于Hadoop的小文件分级索引的存储优化方法 |
Non-Patent Citations (5)
Title |
---|
李海生 等: "Hadoop环境下三维模型的存储及形状分布特征提取", 《计算机研究与发展》 * |
王晓明: "基于HDFS的移动超声探测小文件高效存储研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
王涛: "云存储中面向访问任务的小文件合并与预取策略", 《武汉大学学报(信息科学版)》 * |
章成志 等: "《文本自动标引与自动分类研究》", 31 December 2009, 东南大学出版社 * |
马刚: "《基于语义的Web数据挖掘》", 31 January 2014, 东北财经大学出版社 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106446079B (zh) * | 2016-09-08 | 2019-06-18 | 中国科学院计算技术研究所 | 一种面向分布式文件***的文件预取/缓存方法及装置 |
CN106446079A (zh) * | 2016-09-08 | 2017-02-22 | 中国科学院计算技术研究所 | 一种面向分布式文件***的文件预取/缓存方法及装置 |
CN106528451A (zh) * | 2016-11-14 | 2017-03-22 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106528451B (zh) * | 2016-11-14 | 2019-09-03 | 哈尔滨工业大学(威海) | 针对小文件的二级缓存预取的云存储框架及构建方法 |
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN106776370A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于对象关联性评估的云存储方法及装置 |
CN106776967B (zh) * | 2016-12-05 | 2020-03-27 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN106897587A (zh) * | 2017-02-27 | 2017-06-27 | 百度在线网络技术(北京)有限公司 | 加固应用、加载加固应用的方法和装置 |
CN107341267A (zh) * | 2017-07-24 | 2017-11-10 | 郑州云海信息技术有限公司 | 一种分布式文件***访问方法及平台 |
CN110069455A (zh) * | 2017-09-21 | 2019-07-30 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
CN110069455B (zh) * | 2017-09-21 | 2021-12-14 | 北京华为数字技术有限公司 | 一种文件合并方法及装置 |
CN109947721A (zh) * | 2017-12-01 | 2019-06-28 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
CN109947721B (zh) * | 2017-12-01 | 2021-08-17 | 北京安天网络安全技术有限公司 | 一种小文件处理方法和装置 |
CN109766318A (zh) * | 2018-12-17 | 2019-05-17 | 新华三大数据技术有限公司 | 文件读取方法及装置 |
CN109766318B (zh) * | 2018-12-17 | 2021-03-02 | 新华三大数据技术有限公司 | 文件读取方法及装置 |
CN110069466A (zh) * | 2019-04-15 | 2019-07-30 | 武汉大学 | 一种面向分布式文件***的小文件存储方法及装置 |
CN110069466B (zh) * | 2019-04-15 | 2021-02-19 | 武汉大学 | 一种面向分布式文件***的小文件存储方法及装置 |
CN110297810A (zh) * | 2019-07-05 | 2019-10-01 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
CN110297810B (zh) * | 2019-07-05 | 2022-01-18 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
CN111475469B (zh) * | 2020-03-19 | 2021-12-14 | 中山大学 | Kubernetes用户态应用中基于虚拟文件***的小文件存储优化*** |
CN111475469A (zh) * | 2020-03-19 | 2020-07-31 | 中山大学 | Kubernetes用户态应用中基于虚拟文件***的小文件存储优化*** |
CN111930684A (zh) * | 2020-07-28 | 2020-11-13 | 苏州亿歌网络科技有限公司 | 基于hdfs的小文件处理方法、装置、设备及存储介质 |
CN112422448A (zh) * | 2020-08-21 | 2021-02-26 | 苏州浪潮智能科技有限公司 | Fpga加速卡网络数据传输方法及相关组件 |
CN112241396A (zh) * | 2020-10-27 | 2021-01-19 | 浪潮云信息技术股份公司 | 基于Spark的对Delta进行小文件合并的方法及*** |
CN112241396B (zh) * | 2020-10-27 | 2023-05-23 | 浪潮云信息技术股份公司 | 基于Spark的对Delta进行小文件合并的方法及*** |
CN118132520A (zh) * | 2024-05-08 | 2024-06-04 | 济南浪潮数据技术有限公司 | 存储***文件处理方法、电子设备、存储介质及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105843841A (zh) | 一种小文件存储方法和*** | |
CN104239501B (zh) | 一种基于Spark的海量视频语义标注方法 | |
CN106649455A (zh) | 一种大数据开发的标准化***归类、命令集*** | |
CN104346438B (zh) | 基于大数据数据管理服务*** | |
CN110019616A (zh) | 一种poi现势状态获取方法及其设备、存储介质、服务器 | |
CN103812939A (zh) | 一种大数据存储*** | |
CN106294595A (zh) | 一种文档存储、检索方法及装置 | |
CN105159971B (zh) | 一种云平台数据检索方法 | |
CN107103032A (zh) | 一种分布式环境下避免全局排序的海量数据分页查询方法 | |
CN104063376A (zh) | 多维度分组运算方法及*** | |
CN113254630B (zh) | 一种面向全球综合观测成果的领域知识图谱推荐方法 | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN110795613B (zh) | 商品搜索方法、装置、***及电子设备 | |
Kim et al. | Efficient distributed selective search | |
CN109783441A (zh) | 基于Bloom Filter的海量数据查询方法 | |
KR20180129001A (ko) | 다언어 특질 투영된 개체 공간 기반 개체 요약본 생성 방법 및 시스템 | |
CN104573082B (zh) | 基于访问日志信息的空间小文件数据分布存储方法及*** | |
Khodaei et al. | Temporal-textual retrieval: Time and keyword search in web documents | |
Sabarish et al. | Clustering of trajectory data using hierarchical approaches | |
Huang et al. | Design a batched information retrieval system based on a concept-lattice-like structure | |
Ravichandran | Big Data processing with Hadoop: a review | |
CN104794237A (zh) | 网页信息处理方法及装置 | |
Shah et al. | Big data analytics framework for spatial data | |
Chen et al. | Analysis of plant breeding on hadoop and spark | |
CN109062551A (zh) | 基于大数据开发命令集的开发框架 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160810 |
|
RJ01 | Rejection of invention patent application after publication |