文件存储、检索方法、装置、存储介质及服务器制造方法及图纸

技术编号:20272332 阅读:27 留言:0更新日期:2019-02-02 03:35
本发明专利技术实施例公开了一种文件存储、检索方法、装置、存储介质及服务器。所述文件存储方法包括:获取小文件的文件信息,其中,所述小文件的大小小于预设阈值;根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键;基于所述主键将所述小文件写入预先创建的数据库Hbase表中。通过本发明专利技术实施例提供的技术方案,能够有效利用Hbase的高可靠性、高性能、面向列、可伸缩的分布式存储系统,实现对海量小文件列存储,以减轻HDFS对元数据管理的压力,达到HDFS存储资源的有效利用的效果。

【技术实现步骤摘要】
文件存储、检索方法、装置、存储介质及服务器
本专利技术实施例涉及大数据处理
,尤其涉及文件存储、检索方法、装置、存储介质及服务器。
技术介绍
HDFS(HadoopDistributedFileSystem,分布式文件系统)为整个分布式计算Hadoop生态圈提供了基础的存储服务。可以说hadoop的整个架构都是建立在HDFS基础上的。HDFS专为解决大数据存储问题而产生的,HDFS文件系统专门存储超大文件。对于Hadoop系统,小文件通常定义为远小于HDFS的区块大小blocksize(默认128MB)的文件,由于每个文件都会产生各自的元数据MetaData,Hadoop通过命名空间Namenode来存储这些信息,若小文件过多,容易导致Namenode存储出现瓶颈。在一些业务场景下,hadoop不得不接收海量的小文件的落地。大量的小文件将会导致NameNode压力过大,出现宕机甚至奔溃。具体的,首先,在HDFS中,任何区块block为HDFS中的基本的存储单元,文件或者目录等对象的元数据信息约占150byte(字节),如果有10000000个小文件,每个文件占用一个区块block,则命名空间NameNode大约需要2G空间。如果存储1亿个文件,则NameNode需要20G空间。这样NameNode内存容量严重制约了集群的扩展。其次,访问大量小文件的速度远远低于访问几个大文件的速度。HDFS最初是为流式存储大文件开发的,如果访问大量小文件,需要不断的从一个数据节点DataNode跳到另一个数据节点DataNode,严重影响性能。最后,处理大量小文件的速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个位置slot,而任务task启动将耗费大量时间甚至大部分时间都耗费在启动任务和释放任务上。因此,对HDFS的存储资源进行合理利用,尤其是对小文件的合理处理变得至关重要。
技术实现思路
本专利技术实施例提供一种文件存储、检索方法、装置、存储介质及服务器,可以使得HDFS的存储资源得到有效利用。第一方面,本专利技术实施例提供了一种文件存储方法,包括:获取小文件的文件信息,其中,所述小文件的大小小于预设阈值;根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键;基于所述主键将所述小文件写入预先创建的数据库Hbase表中。进一步的,获取小文件的文件信息,包括:判断HDFS中的文件是否为小文件,若是,则获取HDFS中的小文件的文件信息;基于所述主键将所述小文件写入预先创建的数据库Hbase表中,包括:确定所述小文件在HDFS中的位置,并基于所述主键及所述小文件在HDFS中的位置,将所述HDFS中的小文件以二进制流的形式写入预先创建的数据库Hbase表中。进一步的,在基于所述主键及所述小文件在HDFS中的位置,将所述HDFS中小文件以二进制流的形式写入预先创建的数据库Hbase表中之后,还包括:关闭二进制流,并删除所述HDFS中的小文件。进一步的,所述数据库Hbase表包括内存空间和多个存储文件;基于所述主键将所述小文件写入预先创建的数据库Hbase表中,包括:基于所述主键将所述小文件写入预先创建的数据库Hbase表中的内存空间;当所述内存空间的当前可用空间小于预设内存阈值时,将所述小文件以存储文件的形式写入HDFS中。;进一步的,所述文件信息包括文件名称、文件所在路径、文件后缀、文件入库时间中的至少一种。第二方面,本专利技术实施例还提供了一种文件检索方法,包括:获取待检索文件的文件信息,并根据所述文件信息按照预设规则生成与所述待检索文件对应的主键;基于所述主键在预先存储的数据库Hbase表中,检索与所述主键对应的文件数据;确定所述文件数据对应的文件内容及文件后缀信息,并基于所述文件内容和所述文件后缀信息,将所述文件内容转换为对应的文件并输出。第三方面,本专利技术实施例还提供了一种文件存储装置,包括:文件信息获取模块,用于获取小文件的文件信息,其中,所述小文件的大小小于预设阈值;主键生成模块,用于根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键;文件写入模块,用于基于所述主键将所述小文件写入预先创建的数据库Hbase表中。第四方面,本专利技术实施例还提供了一种文件检索装置,包括:文件信息处理模块,用于获取待检索文件的文件信息,并根据所述文件信息按照预设规则生成与所述待检索文件对应的主键;文件数据检索模块,用于基于所述主键在预先存储的数据库Hbase表中,检索与所述主键对应的文件数据;文件转换模块,用于确定所述文件数据对应的文件内容及文件后缀信息,并基于所述文件内容和所述文件后缀信息,将所述文件内容转换为对应的文件并输出。第五方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例第一方面所述的文件存储方法或者如第二方面所述的文件检索方法。第六方面,本专利技术实施例提供了一种服务器,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术实施例第一方面所述文件存储方法或者第二方面所述的文件检索方法。本专利技术实施例提供的文件存储方案,获取小文件的文件信息,其中,所述小文件的大小小于预设阈值,然后根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键,并基于所述主键将所述小文件写入预先创建的数据库Hbase表中。通过采用上述技术方案,能够有效利用Hbase的高可靠性、高性能、面向列、可伸缩的分布式存储系统,实现对海量小文件列存储,以减轻HDFS对元数据管理的压力,达到HDFS存储资源的有效利用的效果。附图说明图1是本专利技术实施例一提供的一种文件存储方法的流程示意图;图2是本专利技术实施例二提供的一种文件存储方法的流程示意图;图3是本专利技术实施例三提供的一种文件存储方法的流程示意图;图4为本专利技术实施例三提供的文件在Hbase内部存储过程示意图;图5是本专利技术实施例四提供的一种文件检索方法的流程示意图;图6是本专利技术实施例五提供的一种文件存储装置的结构示意图;图7是本专利技术实施例六提供的一种文件检索装置的结构示意图;图8是本专利技术实施例八提供的一种服务器的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。目前,为了对HDFS中海量小文件进行合理处理,HDFS自带有三种小文件合并的方案,分别为:HAR(HadoopArchive),SequenceFile和CombineFileInputFormat。这三种小文件合并方案,均是通过将多个小文件合并成一个大文件的方式,来减少系统中本文档来自技高网
...

【技术保护点】
1.一种文件存储方法,其特征在于,包括:获取小文件的文件信息,其中,所述小文件的大小小于预设阈值;根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键;基于所述主键将所述小文件写入预先创建的数据库Hbase表中。

【技术特征摘要】
1.一种文件存储方法,其特征在于,包括:获取小文件的文件信息,其中,所述小文件的大小小于预设阈值;根据所述文件信息按照预设规则生成与所述小文件唯一对应的主键;基于所述主键将所述小文件写入预先创建的数据库Hbase表中。2.根据权利要求1所述的方法,其特征在于,获取小文件的文件信息,包括:判断HDFS中的文件是否为小文件,若是,则获取HDFS中的小文件的文件信息;基于所述主键将所述小文件写入预先创建的数据库Hbase表中,包括:确定所述小文件在HDFS中的位置,并基于所述主键及所述小文件在HDFS中的位置,将所述HDFS中的小文件以二进制流的形式写入预先创建的数据库Hbase表中。3.根据权利要求2所述的方法,其特征在于,在基于所述主键及所述小文件在HDFS中的位置,将所述HDFS中小文件以二进制流的形式写入预先创建的数据库Hbase表中之后,还包括:关闭二进制流,并删除所述HDFS中的小文件。4.根据权利要求1所述的方法,其特征在于,所述数据库Hbase表包括内存空间;基于所述主键将所述小文件写入预先创建的数据库Hbase表中,包括:基于所述主键将所述小文件写入预先创建的数据库Hbase表中的内存空间;当所述内存空间的当前可用空间小于预设内存阈值时,将所述小文件以存储文件的形式写入HDFS中。5.根据权利要求1-4任一所述的方法,其特征在于,所述文件信息包括文件名称、文件所在路径、文件后缀、文件入库时间中的至少一种。6.一种文件检索方法,其特征在于,包括:获取待检索文件的文件信息,并根据所...

【专利技术属性】
技术研发人员:万月亮张海涛火一莽
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京,11

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

1