CN107729432A - 一种分布式小文件的存储、读取方法、装置及存取系统 - Google Patents
一种分布式小文件的存储、读取方法、装置及存取系统 Download PDFInfo
- Publication number
- CN107729432A CN107729432A CN201710907252.6A CN201710907252A CN107729432A CN 107729432 A CN107729432 A CN 107729432A CN 201710907252 A CN201710907252 A CN 201710907252A CN 107729432 A CN107729432 A CN 107729432A
- Authority
- CN
- China
- Prior art keywords
- sequencefile
- small documents
- content
- unique mark
- stored
- 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
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
- 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/14—Details of searching files based on file metadata
-
- 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/172—Caching, prefetching or hoarding of files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式小文件的存储、读取方法、装置及存取系统,该方法可以包括:创建Hbase表;针对于待存储的每一个小文件,均执行:确定当前小文件的内容、唯一标识以及元数据信息;根据所述元数据信息,将所述当前小文件的所述内容存储至相应的序列化文件SequenceFile中;确定所述内容在相应的所述SequenceFile中的起始偏移和终止偏移;确定所述SequenceFile的位置信息;将所述唯一标识、所述起始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所述Hbase表中。本方案能够提高读取效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种分布式小文件的存储、读取 方法、装置及存取系统。
背景技术
随着互联网的不断普及与发展,数据呈现爆炸式增长,社交网络、电子 商务等各种应用往往能产生亿级、十亿级甚至是百亿级的小文件。如何基于 分布式文件系统(Hadoop Distributed File System,HDFS)实现这些小文件的存 取成为现如今比较关注的问题。
目前,在存储这些小文件时,只是对这些小文件的内容进行存储。但是, 当需要读取某个或者某些小文件的内容时,则需要遍历所有的内容才能读取 到所需的内容,导致读取效率较低。
发明内容
本发明实施例提供了一种分布式小文件的存储、读取方法、装置及存取 系统,能够提高读取效率。
第一方面,本发明实施例提供了一种分布式小文件的存储方法,创建 Hbase表;还包括:
针对于待存储的每一个小文件,均执行:
确定当前小文件的内容、唯一标识以及元数据信息;
根据所述元数据信息,将所述当前小文件的所述内容存储至相应的序列 化文件SequenceFile中;
确定所述内容在相应的所述SequenceFile中的起始偏移和终止偏移;
确定所述SequenceFile的位置信息;
将所述唯一标识、所述起始偏移、所述终止偏移以及所述SequenceFile 的位置信息对应存储在所述Hbase表中。
优选地,
所述将所述唯一标识、所述起始偏移、所述终止偏移以及所述 SequenceFile的位置信息对应存储在所述Hbase表中,包括:
将所述唯一标识、所述起始偏移、所述终止偏移、所述SequenceFile的 位置信息以及所述元数据信息对应存储在所述Hbase表中。
优选地,
所述根据所述元数据信息,将所述当前小文件的所述内容存储至相应的 序列化文件SequenceFile中,包括:
根据预设的存储规则,判断是否存在与所述元数据信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所 述当前小文件的所述内容存储至创建出的所述SequenceFile中。
第二方面,本发明实施例提供了一种分布式小文件的读取方法,包括:
接收携带有至少一个检索词的读取请求;
从Hbase表中查找与所述至少一个检索词相对应的至少一个唯一标识;
从所述Hbase表中查找与所述至少一个唯一标识相对应的起始偏移、终 止偏移以及SequenceFile的位置信息;
根据查找的所述SequenceFile的位置信息,从所述SequenceFile中读取 由所述起始偏移至所述终止偏移的内容。
优选地,
所述从Hbase表中查找与所述至少一个检索词相对应的至少一个唯一标 识,包括:
从所述Hbase表中查找包括有所述至少一个检索词的至少一个元数据信 息;从所述Hbase表中查找与所述至少一个元数据信息相对应的所述至少一 个唯一标识。
第三方面,本发明实施例提供了一种分布式小文件的存储装置,包括:
创建单元,用于创建Hbase表;
确定单元,用于针对于待存储的每一个小文件,确定当前小文件的内容、 唯一标识以及元数据信息;
存储单元,用于根据所述元数据信息,将所述当前小文件的所述内容存 储至相应的序列化文件SequenceFile中;
索引单元,用于确定所述内容在相应的所述SequenceFile中的起始偏移 和终止偏移;确定所述SequenceFile的位置信息;将所述唯一标识、所述起 始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所述 Hbase表中。
优选地,
所述索引单元,用于将所述唯一标识、所述起始偏移、所述终止偏移、 所述SequenceFile的位置信息以及所述元数据信息对应存储在所述Hbase表 中。
优选地,
所述存储单元,用于根据预设的存储规则,判断是否存在与所述元数据 信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所 述当前小文件的所述内容存储至创建出的所述SequenceFile中。
第四方面,本发明实施例提供了一种分布式小文件的读取装置,包括:
接收单元,用于接收携带有至少一个检索词的读取请求;
确定单元,用于从Hbase表中查找与所述至少一个检索词相对应的至少 一个唯一标识;以及从所述Hbase表中查找与所述至少一个唯一标识相对应 的起始偏移、终止偏移以及SequenceFile的位置信息;
读取单元,用于根据查找的所述SequenceFile的位置信息,从所述 SequenceFile中读取由所述起始偏移至所述终止偏移的内容。
第五方面,本发明实施例提供了一种分布式小文件的存取系统,包括: 上述任一实施例中的分布式小文件的存储装置,以及上述任一实施例中的分 布式小文件的读取装置。
本发明实施例提供了一种分布式小文件的存储、读取方法、装置及存取 系统,通过创建Hbase表,那么在存储每一个小文件时,确定当前小文件的 内容、唯一标识以及元数据信息,然后将该内容存储至一相应的SequenceFile 中,在该内容完成存储后,确定该内容在SequenceFile中的起始偏移、终止 偏移以及该SequenceFile的位置信息,然后,确定出的起始偏移、终止偏移 以及SequenceFile的位置信息将作为索引数据存储在创建的Hbase表中,以 及唯一标识也对应存储在Hbase表中,在读取小文件时,可根据唯一标识在Hbase表中找到相对应的索引数据,然后根据找到的索引数据从相应的 SequenceFile中找到起始偏移至终止偏移的所需内容,这样,通过Hbase表 中存储的索引数据就可以快速的找到所需内容,而无需在遍历所有的内容, 从而提高了读取效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实 施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面 描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不 付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种分布式小文件的存储方法的流程图;
图2是本发明一个实施例提供的一种分布式小文件的读取方法的流程图;
图3是本发明一个实施例提供的一种分布式小文件的存储装置的结构示 意图;
图4是本发明一个实施例提供的一种分布式小文件的读取装置的结构示 意图;
图5是本发明一个实施例提供的一种分布式小文件的存取系统的结构示 意图;
图6是本发明一个实施例提供的一种分布式小文件的存取方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发 明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所 获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种分布式小文件的存储方法,该方 法可以包括以下步骤:
步骤101:创建Hbase表。
步骤102:针对于待存储的每一个小文件,确定当前小文件的内容、唯 一标识以及元数据信息。
步骤103:根据所述元数据信息,将所述当前小文件的所述内容存储至 相应的序列化文件SequenceFile中。
步骤104:确定所述内容在相应的所述SequenceFile中的起始偏移和终 止偏移。
步骤105:确定所述SequenceFile的位置信息。
步骤106:将所述唯一标识、所述起始偏移、所述终止偏移以及所述 SequenceFile的位置信息对应存储在所述Hbase表中。
本发明实施例提供了一种分布式小文件的存储方法,通过创建Hbase表, 那么在存储每一个小文件时,确定当前小文件的内容、唯一标识以及元数据 信息,然后将该内容存储至一相应的SequenceFile中,在该内容完成存储后, 确定该内容在SequenceFile中的起始偏移、终止偏移以及该SequenceFile的 位置信息,然后,确定出的起始偏移、终止偏移以及SequenceFile的位置信 息将作为索引数据存储在创建的Hbase表中,以及唯一标识也对应存储在 Hbase表中,在读取小文件时,可根据唯一标识在Hbase表中找到相对应的 索引数据,然后根据找到的索引数据从相应的SequenceFile中找到起始偏移 至终止偏移的所需内容,这样,通过Hbase表中存储的索引数据就可以快速 的找到所需内容,而无需在遍历所有的内容,从而提高了读取效率。
为了能够按照元数据信息进行检索,以及便于对小文件的元数据信息进 行统一管理,在本发明一个实施例中,所述步骤106的具体实施方式,可包 括:
将所述唯一标识、所述起始偏移、所述终止偏移、所述SequenceFile的 位置信息以及所述元数据信息对应存储在所述Hbase表中。
上述实施例中,可将起始偏移、SequenceFile的位置信息等对应存储在 同一个列族中,而元数据信息存储在一个单独的列族中。那么在需要对文件 进行更细粒度的管理时,可根据唯一标识从HBase表中检索其对应的元数据 信息,从而进行更细粒度和多维度的文件管理。
为了能够将小文件的内容存储至相应的SequenceFile中,在本发明一个 实施例中,所述步骤103的具体实施方式,可包括:
根据预设的存储规则,判断是否存在与所述元数据信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所 述当前小文件的所述内容存储至创建出的所述SequenceFile中。
上述实施例中,小文件的存储是有一定存储规则的。
以小文件为图片为例,图片1对应医院、日期为2017/9/1,图片2对应 机场、日期为2017/9/1,那么在存储图片1时,可先判断是否存在有以“医院 +2017/9/1”命名(命名方式不唯一,可根据实际需求进行设定)的SequenceFile, 如果存在,那么可直接将图片1对应的二进制数组追加存储至该SequenceFile 中,如果不存在,那么可根据预设的存储规则,在相应的路径下创建一个以“医 院+2017/9/1”命名的SequenceFile,然后将对应的二进制数组存储至刚创建的 SequenceFile中,从而完成图片1的存储。同理,针对图片2,依旧是根据预 设的存储规则,判断是否存在以“机场+2017/9/1”命名的SequenceFile,其存 储原理与图片1相同,此处不再赘述。
上述实施例中,存储图片1之后,若获取到待存储的图片6,该图片对 应医院,且日期也为2017/9/1,则此时无需再创建SequenceFile,而是将图片 6对应的内容追加至在存储图片1时已经创建的SequenceFile中。
如图2所述,本发明实施例提供了一种分布式小文件的读取方法,该方 法可以包括以下步骤:
步骤201:接收携带有至少一个检索词的读取请求。
步骤202:从Hbase表中查找与所述至少一个检索词相对应的至少一个 唯一标识。
步骤203:从所述Hbase表中查找与所述至少一个唯一标识相对应的起 始偏移、终止偏移以及SequenceFile的位置信息。
步骤204:根据查找的所述SequenceFile的位置信息,从所述SequenceFile 中读取由所述起始偏移至所述终止偏移的内容。
在本发明一个实施例中,所述步骤202的具体实施方式,可以包括:
从所述Hbase表中查找包括有所述至少一个检索词的至少一个元数据信 息;从所述Hbase表中查找与所述至少一个元数据信息相对应的所述至少一 个唯一标识。
在本发明实施例中,检索词可以是唯一标识,也可以是元数据信息中所 包括的任意一个或几个信息。若检索词是唯一标识,则可直接与Hbase表中 存储的各个唯一标识进行比对,然后根据比对出的唯一标识,从Hbase表中 找出与比对出的唯一标识所对应的起始偏移等信息;若检索词是元数据信息 中所包括的任意一个或几个信息,则可根据Hbase表中对应存储的唯一标识 和元数据信息,找到相应的唯一标识。
在本发明实施例中,可对索引的数据(如起始偏移、终止偏移等)进行单 条读取和批量读取。例如,当前需要读取一张图片,那么可根据该图片对应 的唯一标识,从Hbase表中找到该唯一标识对应的起始偏移、终止偏移以及 该图片所在的SequenceFile的位置信息,从而在该SequenceFile中读取出该 图片的内容;若当前需要读取某公司、某部门(某公司、某部门即为两个检索 词)的多个员工的图像(每个员工的图像所对应的元数据信息包括有公司、部 门、职位等等),那么可先根据这两个检索词,找到所有的元数据信息,如找到10个,然后从Hbase表中找到这10个元数据信息分别对应的唯一标识, 由于在存储这10张图像时,是以追加的形式进行存储,因此,可通过在Hbase 表中找到第1张图片的起始偏移、第10张图片的终止偏移,以及这些图片所 在的SequenceFile的位置信息,从而可以根据这两个偏移,在该SequenceFile 中读取从起始偏移至终止偏移的所有10张图片的内容,实现批量读取。
其中,进行单条读取时的相关代码可如下:
进行批量读取时的相关代码可如下:
如图3所示,本发明实施例提供了一种分布式小文件的存储装置,包括:
创建单元301,用于创建Hbase表;
确定单元302,用于针对于待存储的每一个小文件,确定当前小文件的 内容、唯一标识以及元数据信息;
存储单元303,用于根据所述元数据信息,将所述当前小文件的所述内 容存储至相应的序列化文件SequenceFile中;
索引单元304,用于确定所述内容在相应的所述SequenceFile中的起始 偏移和终止偏移;确定所述SequenceFile的位置信息;将所述唯一标识、所 述起始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所 述Hbase表中。
在本发明一个实施例中,所述索引单元,用于将所述唯一标识、所述起 始偏移、所述终止偏移、所述SequenceFile的位置信息以及所述元数据信息 对应存储在所述Hbase表中。
在本发明一个实施例中,所述存储单元,用于根据预设的存储规则,判 断是否存在与所述元数据信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所 述当前小文件的所述内容存储至创建出的所述SequenceFile中。
如图4所示,本发明实施例提供了一种分布式小文件的读取装置,包括:
接收单元401,用于接收携带有至少一个检索词的读取请求;
确定单元402,用于从Hbase表中查找与所述至少一个检索词相对应的 至少一个唯一标识;以及从所述Hbase表中查找与所述至少一个唯一标识相 对应的起始偏移、终止偏移以及SequenceFile的位置信息;
读取单元403,用于根据查找的所述SequenceFile的位置信息,从所述SequenceFile中读取由所述起始偏移至所述终止偏移的内容。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明 方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此 处不再赘述。
如图5所示,本发明实施例提供了一种分布式小文件的存取系统,包括: 上述任一实施例中的分布式小文件的存储装置501,以及上述任一实施例中 的分布式小文件的读取装置502。
下面将详细说明本发明实施例提供的一种分布式小文件的存取方法,如 图6所示,该方法可以包括如下步骤:
步骤601:创建Hbase表。
本发明实施例中,Hbase表可如下表1进行创建。
表1
其中,创建Hbase表的相关代码可如下:
HTableDescriptor tableDesc=new HTableDescriptor(TableName.valueOf(tableName));
HColumnDescriptor fimalyDesc1=new HColumnDescriptor("v");
HColumnDescriptor fimalyDesc2=new HColumnDescriptor("d");
tableDesc.addFamily(fimalyDesc1);
tableDesc.addFamily(fimalyDesc2);
admin.createTable(tableDesc);
步骤602:针对于待存储的每一个小文件,确定当前小文件的内容、唯 一标识以及元数据信息。
步骤603:根据预设的存储规则,判断是否存在与当前小文件的元数据 信息相对应的SequenceFile,如果是,执行步骤604,否则,执行步骤605。
本发明实施例中,可运用参数SequenceFile.Writer.appendIfExists(true)保证内容追加至相应的SequenceFile中,而不覆盖原有数据,直接生成一个大 文件,而不是将每一个小文件的内容分别存储至一个SequenceFile中,然后 再将各个小的SequenceFile合并成一个大文件,提高了小文件存储的效率。
步骤604:将当前小文件的内容追加至SequenceFile中,并执行步骤606。
步骤605:创建与当前小文件的元数据信息相对应的SequenceFile,并将 当前小文件的内容存储至创建出的SequenceFile中。
步骤606:确定当前小文件的内容在相应的SequenceFile中的起始偏移 和终止偏移。
步骤607:确定SequenceFile的位置信息。
步骤608:将唯一标识、起始偏移、终止偏移、SequenceFile的位置信息 以及元数据信息对应存储在Hbase表中。
在本发明实施例中,将内容写入相应的SequenceFile中,以及将起始偏 移、终止偏移等对应存储至Hbase表中的相关代码可如下:
IntWritable key=new IntWritable();
Text value=new Text((byte[])smallfile);
SequenceFile.Writer writer=null;
Option optPath=SequenceFile.Writer.file(p);
Option optKey=SequenceFile.Writer.keyClass(key.getClass());
Option optVal=SequenceFile.Writer.valueClass(value.getClass());
Option optExist=SequenceFile.Writer.appendIfExists(true);
Option optCompress= SequenceFile.Writer.compression(CompressionType.RECORD);
writer=SequenceFile.createWriter(fs.getConf(),optPath,optKey,optVal,optExist,optCompress);
HTable table=HbaseInit.getTable(TableName.valueOf("tableName"));
startPos=writer.getLength();
writer.append(key,value);
Put put=new Put(Bytes.toBytes("/path/fileName"));
put.addColumn(Bytes.toBytes("v"),Bytes.toBytes("name"), Bytes.toBytes("/path/fileName"));
put.addColumn(Bytes.toBytes("v"),Bytes.toBytes("startPos"),Bytes.toBytes(startPos));
put.addColumn(Bytes.toBytes("v"),Bytes.toBytes("endPos"),Bytes.toBytes(writer.getLength()));
put.addColumn(Bytes.toBytes("d"),Bytes.toBytes("describe"),Bytes.toBytes("some thing decscibe this file"));
table.put(put);
步骤609:接收携带有至少一个检索词的读取请求。
步骤610:从Hbase表中查找与至少一个检索词相对应的至少一个唯一 标识。
步骤611:从Hbase表中查找与至少一个唯一标识相对应的起始偏移、 终止偏移以及SequenceFile的位置信息。
步骤612:根据查找的SequenceFile的位置信息,从SequenceFile中读 取由起始偏移至终止偏移的内容。
本发明实施例中,读取内容的相关代码可如下:
本发明实施例提供了一种计算机可读介质,包括计算机执行指令,当存 储控制器的处理器执行所述计算机执行指令时,所述存储控制器执行上述任 一实施例中的分布式小文件的存储、读取方法。
本发明实施例提供了一种存储控制器,包括:处理器、存储器和总线;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所 述总线连接,当所述存储控制器运行时,所述处理器执行所述存储器存储的 所述计算机执行指令,以使所述存储控制器执行上述任一实施例中的分布式 小文件的存储、读取方法。
综上,本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,通过创建Hbase表,那么在存储每一个小文件时, 确定当前小文件的内容、唯一标识以及元数据信息,然后将该内容存储至一 相应的SequenceFile中,在该内容完成存储后,确定该内容在SequenceFile 中的起始偏移、终止偏移以及该SequenceFile的位置信息,然后,确定出的 起始偏移、终止偏移以及SequenceFile的位置信息将作为索引数据存储在创 建的Hbase表中,以及唯一标识也对应存储在Hbase表中,在读取小文件时, 可根据唯一标识在Hbase表中找到相对应的索引数据,然后根据找到的索引 数据从相应的SequenceFile中找到起始偏移至终止偏移的所需内容,这样, 通过Hbase表中存储的索引数据就可以快速的找到所需内容,而无需在遍历 所有的内容,从而提高了读取效率。
2、在本发明实施例中,通过将大量的小文件存储在SequenceFile中,解 决了大量小文件消耗名称节点namenode的内存问题,实现并采用压缩技术 节省磁盘空间和加快网络传输速度。
3、在本发明实施例中,通过将小文件的元数据信息对应存储在Hbase 表中,实现所有小文件的元数据信息统一管理,从而在需要对文件进行更细 粒度的管理时,可根据唯一标识从HBase表中检索其对应的元数据信息,进 而进行更细粒度和多维度的文件管理。
4、在本发明实施例中,在将内容写入SequenceFile之前,通过判断是否 存在相应的SequenceFile,从而保证追加的内容不会覆盖到已经存储的内容。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将 一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这 些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、 “包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系 列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明 确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有 的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定 的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另 外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取 的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介 质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本 发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原 则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种分布式小文件的存储方法,其特征在于,创建Hbase表;还包括:
针对于待存储的每一个小文件,均执行:
确定当前小文件的内容、唯一标识以及元数据信息;
根据所述元数据信息,将所述当前小文件的所述内容存储至相应的序列化文件SequenceFile中;
确定所述内容在相应的所述SequenceFile中的起始偏移和终止偏移;
确定所述SequenceFile的位置信息;
将所述唯一标识、所述起始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所述Hbase表中。
2.根据权利要求1所述的方法,其特征在于,所述将所述唯一标识、所述起始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所述Hbase表中,包括:
将所述唯一标识、所述起始偏移、所述终止偏移、所述SequenceFile的位置信息以及所述元数据信息对应存储在所述Hbase表中。
3.根据权利要求1或2任一所述的方法,其特征在于,
所述根据所述元数据信息,将所述当前小文件的所述内容存储至相应的序列化文件SequenceFile中,包括:
根据预设的存储规则,判断是否存在与所述元数据信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所述当前小文件的所述内容存储至创建出的所述SequenceFile中。
4.一种分布式小文件的读取方法,其特征在于,包括:
接收携带有至少一个检索词的读取请求;
从Hbase表中查找与所述至少一个检索词相对应的至少一个唯一标识;
从所述Hbase表中查找与所述至少一个唯一标识相对应的起始偏移、终止偏移以及SequenceFile的位置信息;
根据查找的所述SequenceFile的位置信息,从所述SequenceFile中读取由所述起始偏移至所述终止偏移的内容。
5.根据权利要求4所述的方法,其特征在于,
所述从Hbase表中查找与所述至少一个检索词相对应的至少一个唯一标识,包括:
从所述Hbase表中查找包括有所述至少一个检索词的至少一个元数据信息;从所述Hbase表中查找与所述至少一个元数据信息相对应的所述至少一个唯一标识。
6.一种分布式小文件的存储装置,其特征在于,包括:
创建单元,用于创建Hbase表;
确定单元,用于针对于待存储的每一个小文件,确定当前小文件的内容、唯一标识以及元数据信息;
存储单元,用于根据所述元数据信息,将所述当前小文件的所述内容存储至相应的序列化文件SequenceFile中;
索引单元,用于确定所述内容在相应的所述SequenceFile中的起始偏移和终止偏移;确定所述SequenceFile的位置信息;将所述唯一标识、所述起始偏移、所述终止偏移以及所述SequenceFile的位置信息对应存储在所述Hbase表中。
7.根据权利要求6所述的装置,其特征在于,
所述索引单元,用于将所述唯一标识、所述起始偏移、所述终止偏移、所述SequenceFile的位置信息以及所述元数据信息对应存储在所述Hbase表中。
8.根据权利要求6或7任一所述的装置,其特征在于,
所述存储单元,用于根据预设的存储规则,判断是否存在与所述元数据信息相对应的所述SequenceFile;
如果是,则将所述当前小文件的所述内容追加至所述SequenceFile中;
如果否,则创建与所述元数据信息相对应的所述SequenceFile,并将所述当前小文件的所述内容存储至创建出的所述SequenceFile中。
9.一种分布式小文件的读取装置,其特征在于,包括:
接收单元,用于接收携带有至少一个检索词的读取请求;
确定单元,用于从Hbase表中查找与所述至少一个检索词相对应的至少一个唯一标识;以及从所述Hbase表中查找与所述至少一个唯一标识相对应的起始偏移、终止偏移以及SequenceFile的位置信息;
读取单元,用于根据查找的所述SequenceFile的位置信息,从所述SequenceFile中读取由所述起始偏移至所述终止偏移的内容。
10.一种分布式小文件的存取系统,其特征在于,包括:权利要求6至8任一所述的分布式小文件的存储装置,以及权利要求9所述的分布式小文件的读取装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710907252.6A CN107729432A (zh) | 2017-09-29 | 2017-09-29 | 一种分布式小文件的存储、读取方法、装置及存取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710907252.6A CN107729432A (zh) | 2017-09-29 | 2017-09-29 | 一种分布式小文件的存储、读取方法、装置及存取系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107729432A true CN107729432A (zh) | 2018-02-23 |
Family
ID=61209180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710907252.6A Pending CN107729432A (zh) | 2017-09-29 | 2017-09-29 | 一种分布式小文件的存储、读取方法、装置及存取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729432A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299059A (zh) * | 2018-11-16 | 2019-02-01 | 北京锐安科技有限公司 | 文件存储、检索方法、装置、存储介质及服务器 |
CN111176574A (zh) * | 2019-12-27 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 一种小文件存储方法、装置、设备及介质 |
CN113254505A (zh) * | 2021-06-17 | 2021-08-13 | 湖南视觉伟业智能科技有限公司 | 分布式数据存储方法、检索方法、系统及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778270A (zh) * | 2015-04-24 | 2015-07-15 | 成都汇智远景科技有限公司 | 一种用于多文件的存储方法 |
US20150199414A1 (en) * | 2005-12-30 | 2015-07-16 | David E. Braginsky | Locally cached file system |
CN105404652A (zh) * | 2015-10-29 | 2016-03-16 | 河海大学 | 一种基于hdfs的海量小文件处理方法 |
CN106909651A (zh) * | 2017-02-23 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种基于hdfs小文件写入和读取的方法 |
CN107045531A (zh) * | 2017-01-20 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种优化hdfs小文件存取的系统及方法 |
-
2017
- 2017-09-29 CN CN201710907252.6A patent/CN107729432A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150199414A1 (en) * | 2005-12-30 | 2015-07-16 | David E. Braginsky | Locally cached file system |
CN104778270A (zh) * | 2015-04-24 | 2015-07-15 | 成都汇智远景科技有限公司 | 一种用于多文件的存储方法 |
CN105404652A (zh) * | 2015-10-29 | 2016-03-16 | 河海大学 | 一种基于hdfs的海量小文件处理方法 |
CN107045531A (zh) * | 2017-01-20 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种优化hdfs小文件存取的系统及方法 |
CN106909651A (zh) * | 2017-02-23 | 2017-06-30 | 郑州云海信息技术有限公司 | 一种基于hdfs小文件写入和读取的方法 |
Non-Patent Citations (1)
Title |
---|
李孟 等: ""基于Hadoop的小文件存储优化方案"", 《电子科技大学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109299059A (zh) * | 2018-11-16 | 2019-02-01 | 北京锐安科技有限公司 | 文件存储、检索方法、装置、存储介质及服务器 |
CN111176574A (zh) * | 2019-12-27 | 2020-05-19 | 浪潮电子信息产业股份有限公司 | 一种小文件存储方法、装置、设备及介质 |
CN111176574B (zh) * | 2019-12-27 | 2022-03-22 | 浪潮电子信息产业股份有限公司 | 一种小文件存储方法、装置、设备及介质 |
CN113254505A (zh) * | 2021-06-17 | 2021-08-13 | 湖南视觉伟业智能科技有限公司 | 分布式数据存储方法、检索方法、系统及可读存储介质 |
CN113254505B (zh) * | 2021-06-17 | 2021-10-08 | 湖南视觉伟业智能科技有限公司 | 分布式数据存储方法、检索方法、系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353943B2 (en) | Computerized system and method for automatically associating metadata with media objects | |
US9230083B2 (en) | Securing application information in system-wide search engines | |
CN103049271B (zh) | 自动生成api接口的描述文档的方法和装置 | |
CN104850601B (zh) | 基于图数据库的警务实时分析应用平台及其构建方法 | |
CN107526777A (zh) | 一种基于版本号对文件进行处理的方法及设备 | |
CN107729432A (zh) | 一种分布式小文件的存储、读取方法、装置及存取系统 | |
WO2022105119A1 (zh) | 意图识别模型的训练语料生成方法及其相关设备 | |
CN109408522A (zh) | 一种用户特征数据的更新方法和装置 | |
CN108255915A (zh) | 一种文件管理方法、装置及机器可读存储介质 | |
CN106250552A (zh) | 在搜索引擎结果页面上聚集web页面 | |
Liu et al. | Document processing and retrieval: texpros | |
Li et al. | A multi-level interactive lifelog search engine with user feedback | |
CN110347921A (zh) | 一种多模态数据信息的标签抽取方法及装置 | |
CN111949649A (zh) | 一种动态本体存储系统、存储方法、数据查询方法 | |
US20090006364A1 (en) | Extending a seed list to support metadata mapping | |
Lee | Taking context seriously: a framework for contextual information in digital collections | |
Capuano et al. | Ontology extraction from existing educational content to improve personalized e-Learning experiences | |
Tochtermann et al. | Support for Customization and Personalization on the Web | |
Jia et al. | An ontology‐based semantic description model of ubiquitous map images | |
CN115049372B (zh) | 针对人力资源信息的数字基础设施构建方法、设备及介质 | |
Marinchev | Lifting and lowering the data from digital library" Virtual Encyclopedia of Bulgarian Iconography" | |
Huang | Research on the Cloud Archiving Process and Its Technical Framework of Government Website Pages | |
Divya et al. | Ontology based search result optimisation using singular matrix | |
Li et al. | Study the Model of Information Resource Classified Register and Discovery based on Hierarchy in Grid. | |
Xu | The Research on Comprehensive Query Platform for Smart Cities Building |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180223 |
|
RJ01 | Rejection of invention patent application after publication |