CN111930684A - 基于hdfs的小文件处理方法、装置、设备及存储介质 - Google Patents

基于hdfs的小文件处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111930684A
CN111930684A CN202010739170.7A CN202010739170A CN111930684A CN 111930684 A CN111930684 A CN 111930684A CN 202010739170 A CN202010739170 A CN 202010739170A CN 111930684 A CN111930684 A CN 111930684A
Authority
CN
China
Prior art keywords
file
small
hdfs
small files
merging
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
Application number
CN202010739170.7A
Other languages
English (en)
Inventor
宋大伟
丁静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Yige Network Technology Co ltd
Original Assignee
Suzhou Yige Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Yige Network Technology Co ltd filed Critical Suzhou Yige Network Technology Co ltd
Priority to CN202010739170.7A priority Critical patent/CN111930684A/zh
Publication of CN111930684A publication Critical patent/CN111930684A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

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)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种基于HDFS的小文件处理方法、装置、设备及存储介质,方法包括:按照预设检索周期检索HDFS中的小文件;根据各所述小文件的关键词对所述小文件进行分类;根据预设文件合并方式对所述小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。本发明实施例的技术方案能够提高HDFS对小文件的存取效率,从而节省HDFS的资源消耗并提高HDFS的整体性能。

Description

基于HDFS的小文件处理方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种基于HDFS的小文件处理方法、装置、计算机设备及存储介质。
背景技术
在HDFS(Hadoop Distributed File System,分布式文件系统)中,随着数据的增长,数据处理得到结果需要更长的时间。而这些数据中又包含大量的小文件,这种文件的大小小于上数据块block的大小,这样会给hadoop(分布式系统基础架构)的性能带来严重问题。
首先,在HDFS中,任何block、文件或者目录在内存中均以对象的形式存储,每个对象约占150byte,如果有10000000个小文件,每个文件占用一个block,则Namenode(Master节点)大约需要3G空间。如果存储1亿个文件,则Namenode需要30G空间。这样大量小文件占用过多Namenode内存,严重制约了集群的扩展。其次,NameNode中的主内存大小限制了可以存储到HDFS中的文件的数量。此外,访问大量小文件速度远远小于访问几个大文件。HDFS最初是为流式访问大文件开发的,如果访问大量小文件,需要不断的从一个Datanode(负责存储数据块block)跳到另一个Datanode,严重影响性能。最后,处理大量小文件速度远远小于处理同等大小的大文件的速度。每一个小文件要占用一个存储空间,而task(任务)启动将耗费大量时间甚至大部分时间都耗费在启动task和释放task上。
同时,HDFS在进行小文件处理时,名称节点需要耗费大量的内存来保存小文件的元数据信息,而且小文件上传和下载的效率很不理想。虽然,HDFS提供了HAR、SequenceFile、MapFile及CombineFileInputFormat等方法用来处理小文件问题,但是HAR与CombineFileInputFormat方法不能提高小文件的上传效率,SequenceFile与MapFile方法虽然上传效率较高,但是它们的查询效率低,因此解决HDFS的小文件问题是非常有意义。
发明内容
本发明实施例提供一种基于HDFS的小文件处理方法、装置、计算机设备及存储介质,以提高HDFS对小文件的存取效率,从而节省HDFS的资源消耗并提高HDFS的整体性能。
第一方面,本发明实施例提供了一种基于HDFS的小文件处理方法,包括:
按照预设检索周期检索HDFS中的小文件;
根据各所述小文件的关键词对所述小文件进行分类;
根据预设文件合并方式对所述小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
可选的,在所述根据预设文件合并方式对所述小文件进行合并存储之后,还包括;
删除已合并存储小文件的源文件。
可选的,所述按照预设检索周期检索HDFS中的小文件,包括:
按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
可选的,在所述根据各所述小文件的关键词对所述小文件进行分类之前,还包括:
根据HDFS的系统架构确定各所述小文件的关键词。
可选的,所述根据项目方式对分类得到的小文件进行合并存储,包括:
根据所述分类得到的小文件对应的文件项目,对所述小文件进行合并存储。
可选的,所述根据字典方式对分类得到的小文件进行合并存储,包括:
确定数据字典的表结构;
根据所述数据字典的表结构预先定义所述数据字典各个参数的预设值,得到系统数据字典;
根据所述系统数据字典对分类得到的小文件进行合并存储。
可选的,在所述根据预设文件合并方式对所述小文件进行合并存储之后,还包括:
执行文件数据检测任务;其中,所述文件数据检测任务包括:检测小文件格式及数据的正确性,以及检测小文件合并存储结果是否成功。
第二方面,本发明实施例还提供了一种基于HDFS的小文件处理装置,包括:
小文件检索模块,用于按照预设检索周期检索HDFS中的小文件;
小文件分类模块,用于根据各所述小文件的关键词对所述小文件进行分类;
小文件存储模块,用于根据预设文件合并方式对所述小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
可选的,所述装置还包括:
源文件删除模块,用于删除已合并存储小文件的源文件。
可选的,所述小文件检索模块具体用于:
按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
可选的,所述装置还包括:
关键词确定模块,用于根据HDFS的系统架构确定各所述小文件的关键词。
可选的,小文件存储模块,具体用于:
根据所述分类得到的小文件对应的文件项目,对所述小文件进行合并存储。
可选的,小文件存储模块,具体用于:
确定数据字典的表结构;
根据所述数据字典的表结构预先定义所述数据字典各个参数的预设值,得到系统数据字典;
根据所述系统数据字典对分类得到的小文件进行合并存储。
可选的,所述装置还包括:
检测任务执行模块,用于执行文件数据检测任务;其中,所述文件数据检测任务包括:检测小文件格式及数据的正确性,以及检测小文件合并存储结果是否成功。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于HDFS的小文件处理方法。
第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的基于HDFS的小文件处理方法。
本发明实施例通过按照预设检索周期检索HDFS中的小文件,并根据各小文件的关键词对检索到的小文件进行分类,最后根据项目方式或字典方式等预设文件合并方式对小文件进行合并存储,解决现有HDFS小文件处理方式存在的处理效果不够理想的问题,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
附图说明
图1是本发明实施例一提供的一种基于HDFS的小文件处理方法的流程图;
图2是本发明实施例二提供的一种基于HDFS的小文件处理方法的流程图;
图3是本发明实施例三提供的一种基于HDFS的小文件处理装置的示意图;
图4为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
HDFS Hadoop分布式文件系统。它其实是将一个大文件分成若干块保存在不同服务器的多个节点中。通过联网让用户感觉像是在本地一样查看文件,为了降低文件丢失造成的错误,它会为每个小文件复制多个副本(默认为三个),以此来实现多机器上的多用户分享文件和存储空间。HDFS特点为:能够保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。运行在廉价的机器上。适合大数据的处理。因为小文件也占用一个块,小文件越多(1000个1k文件)块越多,NameNode压力越大。如:将一个大文件分成三块A、B、C的存储方式。
HDFS基本结构分NameNode、SecondaryNameNode及DataNode三个方面。其中,NameNode是Master节点,有点类似Linux里的根目录,用于管理数据块映射、处理客户端的读写请求、配置副本策略以及管理HDFS的名称空间;SecondaryNameNode保存NameNode的部分信息(不是全部信息NameNode宕掉之后恢复数据用),是NameNode的冷备份;合并fsimage和edits然后再发给namenode。DataNode负责存储client发来的数据块block,可以执行数据块的读写操作。Block是文件块,HDFS中是以Block为单位进行文件的管理的,一个文件可能有多个块,每个块默认是3个副本,这些块分别存储在不同机器上。块与文件之前的映射关系会定时上报Namenode。HDFS中一个块的默认大小是64M,其大小由参数dfs.block.size控制。
HDFS是一个不错的分布式文件系统,它有很多的优点,但也存在有一些缺点,其中一个缺点就是存在大量小文件。因为Namenode把文件系统的元数据放置在内存中,所以文件系统所能容纳的文件数目是由Namenode的内存大小来决定。一般来说,每一个文件、文件夹和Block需要占据150字节左右的空间,所以,假设存在100万个文件,每一个占据一个Block,至少需要300MB内存。当文件的数量扩展到数十亿时,则会极大地提升硬件水平的需求。
Map任务(task)一般一次处理一个块大小的输入(input)(默认使用FileInputFormat)。如果文件非常小,并且拥有大量的这种小文件,那么每一个map task都仅仅处理非常小的input数据,因此会产生大量的map tasks,每一个map task都会额外增加bookkeeping开销。一个1GB的文件,拆分成16个块大小文件(默认block size为64M),相对于拆分成10000个100KB的小文件,后者每一个小文件启动一个map task,那么job的时间将会十倍甚至百倍慢于前者。
实施例一
图1是本发明实施例一提供的一种基于HDFS的小文件处理方法的流程图,本实施例可适用对HDFS中的小文件进行处理的情况,该方法可以由基于HDFS的小文件处理装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在计算机设备中。相应的,如图1所示,该方法包括如下操作:
S110、按照预设检索周期检索HDFS中的小文件。
其中,预设检索周期可以是根据实际需求设定的检索周期,如半小时、1小时或2小时等,本申请实施例并不对预设检索周期的具体取值进行限定。
在本发明实施例中,按照预设检索周期检索HDFS中的小文件,具体可以是:预先设置并存储文件检索策略,示例性的,文件检索策略可以是根据文件大小阈值确定小文件。然后在HDFS中遍历获取相应的文件元数据,根据文件检索策略对获取的文件元数据进行筛选,将符合文件检索策略的小文件筛选出,并缓存至内存中。
S120、根据各所述小文件的关键词对所述小文件进行分类。
相应的,在检索得到小文件后,即可根据各小文件的关键词对小文件进行分类。其中,对小文件进行分类处理的好处是:可以提高对小文件的合并处理效率。
S130、根据预设文件合并方式对分类得到的小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
相应的,在对检索得到的小文件分类完成后,即可根据预设文件合并方式对分类得到的小文件进行合并存储,从而完成对小文件的处理。其中,合并存储也即将各类小文件进行合并,并根据合并结果进行存储。可选的,预设合并方式可以包括项目方式或字典方式,也可以根据实际需求选择其他类型的文件合并方式,本发明实施例并不对预设合并方式的具体合并方式进行限定。
综上所述,本发明实施例所提供的基于HDFS的小文件处理方法能够及时并且自动化地完成对HDFS中小文件的合并处理,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
本发明实施例通过按照预设检索周期检索HDFS中的小文件,并根据各小文件的关键词对检索到的小文件进行分类,最后根据项目方式或字典方式等预设文件合并方式对小文件进行合并存储,解决现有HDFS小文件处理方式存在的处理效果不够理想的问题,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
实施例二
图2是本发明实施例二提供的一种基于HDFS的小文件处理方法的流程图,本实施例以上述实施例为基础进行具体化,在本实施例中,给出了按照预设检索周期检索HDFS中的小文件、根据各所述小文件的关键词对所述小文件进行分类,以及,根据预设文件合并方式对分类得到的小文件进行合并存储的具体实现方式。相应的,如图2所示,本实施例的方法可以包括:
S210、按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
其中,小文件检索条件可以是:文件大小小于设定阈值。示例性的,设定阈值可以为216M或512M等,具体可以根据实际需求设定,本发明实施例对此并不进行限制。
在本发明实施例中,按照预设检索周期检索HDFS中的小文件,具体可以是:按照预设检索周期,将文件大小满足小文件检索条件的文件作为小文件。例如,设定小文件检索条件为:文件大小小于512M。则按照预设检索周期,将文件大小满足小文件检索条件的文件作为小文件,可以为:在HDFS中遍历各个文件,当文件大小小于512M时,将该文件筛选为小文件。
S220、根据各所述小文件的关键词对所述小文件进行分类。
在本发明的一个可选实施例中,在所述根据各所述小文件的关键词对所述小文件进行分类之前,还可以包括:根据HDFS的系统架构确定各所述小文件的关键词。
可以理解的是,HDFS在创建后,其对应的系统架构对应的目录也即被确定,因此,各小文件的关键词也可以根据HDFS的系统架构来确定。
S230、根据预设文件合并方式对分类得到的小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
在本发明的一个可选实施例中,所述根据项目方式对分类得到的小文件进行合并存储,可以包括:根据所述分类得到的小文件对应的文件项目,对所述小文件进行合并存储。
在本发明实施例中,根据项目方式对分类得到的小文件进行合并存储,是对小文件进行合并处理最为直接有效的方式。相应的,根据项目方式对分类得到的小文件进行合并存储,具体可以是:根据分类得到的小文件对应的文件项目,对小文件进行合并存储。也即,将分类得到的各个小文件存储在对应的文件项目的目录下。这样设置的好处是:可以将各个项目对应的所有小文件统一合并到对应的项目中,以实现对小文件的统一管理和规划,并防止小文件被错误归类存储。
在本发明的一个可选实施例中,所述根据字典方式对分类得到的小文件进行合并存储,可以包括:确定数据字典的表结构;根据所述数据字典的表结构预先定义所述数据字典各个参数的预设值,得到系统数据字典;根据所述系统数据字典对分类得到的小文件进行合并存储。
在本发明实施例中,除了可以根据项目方式对分类得到的小文件进行合并存储,还可以根据字典方式对分类得到的小文件进行合并存储。具体可以是:根据小文件存储需求确定数据字典的表结构,然后对数据字典的表结构预先定义数据字典中各个参数的预设值,完成小文件的层级索引,得到可以使用的系统数据字典。得到系统数据字典后,即可利用系统数据字典对分类得到的小文件进行合并存储。
S240、删除已合并存储小文件的源文件。
相应的,在对小文件合并存储处理完成后,需要删除已合并存储小文件的源文件,以避免冗余的源文件占用过多的系统资源。
S250、执行文件数据检测任务。
其中,所述文件数据检测任务包括:检测小文件格式及数据的正确性,以及检测小文件合并存储结果是否成功。
在本发明实施例中,在小文件合并存储完成后,还可以执行文件数据检测任务。例如,检测小文件格式及数据是否正确,以及检测小文件合并存储结果是否成功。具体的,在对小文件合并存储完成后,可以针对每个小文件生成对应的校验码,校验码可以唯一标识小文件。相应的,在检测小文件格式的正确性时,可以判断小文件的校验码是否正确。当确定各小文件的校验码正确时,可以确定各小文件的文件格式是正确的。在检测小文件数据的正确性时,可以依据各小文件数据占用的命令行的数量来检测。当各小文件数据占用的命令行的数量没有发生变化时,表明小文件的文件数据是正确的。需要说明的是,部分小文件可能存在冗余的命令行,则在合并存储后,冗余的命令行会被删除,从而导致命令行数量减少。这种情况下可以认为小文件的文件数据是正确的。在检查小文件合并存储结果是否成功时,也可以依据校验码来检测。也即,当确定各小文件的校验码正确时,可以确定各小文件合并存储成功。
本发明实施例通过按照预设检索周期检索HDFS中的小文件,并根据各小文件的关键词对检索到的小文件进行分类,最后根据项目方式或字典方式等预设文件合并方式对小文件进行合并存储,解决现有HDFS小文件处理方式存在的处理效果不够理想的问题,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
需要说明的是,以上各实施例中各技术特征之间的任意排列组合也属于本发明的保护范围。
实施例三
图3是本发明实施例三提供的一种基于HDFS的小文件处理装置的示意图,如图3所示,所述装置包括:小文件检索模块310、小文件分类模块320以及小文件存储模块330,其中:
小文件检索模块310,用于按照预设检索周期检索HDFS中的小文件;
小文件分类模块320,用于根据各所述小文件的关键词对所述小文件进行分类;
小文件存储模块330,用于根据预设文件合并方式对所述小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
本发明实施例通过按照预设检索周期检索HDFS中的小文件,并根据各小文件的关键词对检索到的小文件进行分类,最后根据项目方式或字典方式等预设文件合并方式对小文件进行合并存储,解决现有HDFS小文件处理方式存在的处理效果不够理想的问题,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
可选的,所述装置还包括:
源文件删除模块,用于删除已合并存储小文件的源文件。
可选的,小文件检索模块310具体用于:
按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
可选的,所述装置还包括:
关键词确定模块,用于根据HDFS的系统架构确定各所述小文件的关键词。
可选的,小文件存储模块330,具体用于:
根据所述分类得到的小文件对应的文件项目,对所述小文件进行合并存储。
可选的,小文件存储模块330,具体用于:
确定数据字典的表结构;
根据所述数据字典的表结构预先定义所述数据字典各个参数的预设值,得到系统数据字典;
根据所述系统数据字典对分类得到的小文件进行合并存储。
可选的,所述装置还包括:
检测任务执行模块,用于执行文件数据检测任务;其中,所述文件数据检测任务包括:检测小文件格式及数据的正确性,以及检测小文件合并存储结果是否成功。
上述基于HDFS的小文件处理装置可执行本发明任意实施例所提供的基于HDFS的小文件处理方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的基于HDFS的小文件处理方法。
由于上述所介绍的基于HDFS的小文件处理装置为可以执行本发明实施例中的基于HDFS的小文件处理方法的装置,故而基于本发明实施例中所介绍的基于HDFS的小文件处理方法,本领域所属技术人员能够了解本实施例的基于HDFS的小文件处理装置的具体实施方式以及其各种变化形式,所以在此对于该基于HDFS的小文件处理装置如何实现本发明实施例中的基于HDFS的小文件处理方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中基于HDFS的小文件处理方法所采用的装置,都属于本申请所欲保护的范围。
实施例四
图4为本发明实施例四提供的一种计算机设备的结构示意图。图4示出了适于用来实现本发明实施方式的计算机设备412的框图。图4显示的计算机设备412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算机设备412以通用计算设备的形式表现。计算机设备412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
计算机设备412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)430和/或高速缓存存储器432。计算机设备412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块426的程序436,可以存储在例如存储装置428中,这样的程序模块426包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块426通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备412也可以与一个或多个外部设备414(例如键盘、指向设备、摄像头、显示器424等)通信,还可与一个或者多个使得用户能与该计算机设备412交互的设备通信,和/或与使得该计算机设备412能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(Input/Output,I/O)接口422进行。并且,计算机设备412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器420通过总线418与计算机设备412的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备412使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arraysof Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的基于HDFS的小文件处理方法。
也即,所述处理单元执行所述程序时实现:按照预设检索周期检索HDFS中的小文件;根据各所述小文件的关键词对所述小文件进行分类;根据预设文件合并方式对分类得到的小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
通过按照预设检索周期检索HDFS中的小文件,并根据各小文件的关键词对检索到的小文件进行分类,最后根据项目方式或字典方式等预设文件合并方式对小文件进行合并存储,解决现有HDFS小文件处理方式存在的处理效果不够理想的问题,从而提高HDFS对小文件的存取效率,节省HDFS的资源消耗并提高HDFS的整体性能。
实施例五
本发明实施例五还提供一种存储计算机程序的计算机存储介质,所述计算机程序在由计算机处理器执行时用于执行本发明上述实施例任一所述的基于HDFS的小文件处理方法:按照预设检索周期检索HDFS中的小文件;根据各所述小文件的关键词对所述小文件进行分类;根据预设文件合并方式对分类得到的小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器((Erasable Programmable ReadOnly Memory,EPROM)或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言——诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种基于分布式文件系统HDFS的小文件处理方法,其特征在于,包括:
按照预设检索周期检索HDFS中的小文件;
根据各所述小文件的关键词对所述小文件进行分类;
根据预设文件合并方式对分类得到的小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
2.根据权利要求1所述的方法,其特征在于,在所述根据预设文件合并方式对所述小文件进行合并存储之后,还包括;
删除已合并存储小文件的源文件。
3.根据权利要求1所述的方法,其特征在于,所述按照预设检索周期检索HDFS中的小文件,包括:
按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
4.根据权利要求1所述的方法,其特征在于,在所述根据各所述小文件的关键词对所述小文件进行分类之前,还包括:
根据HDFS的系统架构确定各所述小文件的关键词。
5.根据权利要求1所述的方法,其特征在于,所述根据项目方式对分类得到的小文件进行合并存储,包括:
根据所述分类得到的小文件对应的文件项目,对所述小文件进行合并存储。
6.根据权利要求1所述的方法,其特征在于,所述根据字典方式对分类得到的小文件进行合并存储,包括:
确定数据字典的表结构;
根据所述数据字典的表结构预先定义所述数据字典各个参数的预设值,得到系统数据字典;
根据所述系统数据字典对分类得到的小文件进行合并存储。
7.根据权利要求1所述的方法,其特征在于,在所述根据预设文件合并方式对所述小文件进行合并存储之后,还包括:
执行文件数据检测任务;其中,所述文件数据检测任务包括:检测小文件格式及数据的正确性,以及检测小文件合并存储结果是否成功。
8.一种基于HDFS的小文件处理装置,其特征在于,包括:
小文件检索模块,用于按照预设检索周期检索HDFS中的小文件;
小文件分类模块,用于根据各所述小文件的关键词对所述小文件进行分类;
小文件存储模块,用于根据预设文件合并方式对所述小文件进行合并存储;其中,所述预设合并方式包括项目方式或字典方式。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
源文件删除模块,用于删除已合并存储小文件的源文件。
10.根据权利要求8所述的装置,其特征在于,所述小文件检索模块具体用于:
按照所述预设检索周期,将文件大小满足小文件检索条件的文件作为所述小文件。
11.根据权利要求8所述的装置,其特征在于,所述装置还包括:
关键词确定模块,用于根据HDFS的系统架构确定各所述小文件的关键词。
12.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于HDFS的小文件处理方法。
13.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的基于HDFS的小文件处理方法。
CN202010739170.7A 2020-07-28 2020-07-28 基于hdfs的小文件处理方法、装置、设备及存储介质 Pending CN111930684A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010739170.7A CN111930684A (zh) 2020-07-28 2020-07-28 基于hdfs的小文件处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010739170.7A CN111930684A (zh) 2020-07-28 2020-07-28 基于hdfs的小文件处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111930684A true CN111930684A (zh) 2020-11-13

Family

ID=73314793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010739170.7A Pending CN111930684A (zh) 2020-07-28 2020-07-28 基于hdfs的小文件处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111930684A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235422A (zh) * 2020-12-11 2021-01-15 浙江大华技术股份有限公司 数据处理方法、装置、计算机可读存储介质及电子装置
CN117574184A (zh) * 2024-01-16 2024-02-20 支付宝(杭州)信息技术有限公司 证据合并处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105843841A (zh) * 2016-03-07 2016-08-10 青岛理工大学 一种小文件存储方法和系统
CN106294374A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 小文件合并的方法和数据查询系统
CN106855861A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种文件合并方法、装置及电子设备
JP2019204472A (ja) * 2018-05-22 2019-11-28 広東技術師範学院 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法
CN111159130A (zh) * 2018-11-07 2020-05-15 中移(苏州)软件技术有限公司 一种小文件合并方法及电子设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294374A (zh) * 2015-05-15 2017-01-04 北京国双科技有限公司 小文件合并的方法和数据查询系统
CN106855861A (zh) * 2015-12-09 2017-06-16 北京金山安全软件有限公司 一种文件合并方法、装置及电子设备
CN105843841A (zh) * 2016-03-07 2016-08-10 青岛理工大学 一种小文件存储方法和系统
JP2019204472A (ja) * 2018-05-22 2019-11-28 広東技術師範学院 Hadoopに基づいて、データマージモジュールとHBaseキャッシュモジュールを備えるHDFSから複数の2MB以下の小さなファイルを読み込む方法
CN111159130A (zh) * 2018-11-07 2020-05-15 中移(苏州)软件技术有限公司 一种小文件合并方法及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235422A (zh) * 2020-12-11 2021-01-15 浙江大华技术股份有限公司 数据处理方法、装置、计算机可读存储介质及电子装置
CN117574184A (zh) * 2024-01-16 2024-02-20 支付宝(杭州)信息技术有限公司 证据合并处理方法及装置

Similar Documents

Publication Publication Date Title
CN109254733B (zh) 用于存储数据的方法、装置和系统
US10754835B2 (en) High-efficiency deduplication module of a database-management system
CN111309732B (zh) 数据处理方法、装置、介质和计算设备
US8103621B2 (en) HSM two-way orphan reconciliation for extremely large file systems
JP5886447B2 (ja) ロケーション非依存のファイル
US10884980B2 (en) Cognitive file and object management for distributed storage environments
US11392545B1 (en) Tracking access pattern of inodes and pre-fetching inodes
US9734171B2 (en) Intelligent redistribution of data in a database
CN110352410B (zh) 跟踪索引节点的访问模式以及预提取索引节点
CN113760847A (zh) 日志数据处理方法、装置、设备及存储介质
CN115114370B (zh) 主从数据库的同步方法、装置、电子设备和存储介质
CN113609090B (zh) 数据存储方法及装置、计算机可读存储介质、电子设备
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
CN113051221A (zh) 数据存储方法、装置、介质、设备及分布式文件系统
CN111930684A (zh) 基于hdfs的小文件处理方法、装置、设备及存储介质
US10235293B2 (en) Tracking access pattern of inodes and pre-fetching inodes
US9529812B1 (en) Timestamp handling for partitioned directories
KR20200078426A (ko) 복구 서버 및 컴퓨터 프로그램
KR100912129B1 (ko) 객체 파일 시스템을 이용한 비정형 데이터 관리 방법 및장치
CN112084141A (zh) 一种全文检索系统扩容方法、装置、设备及介质
US11989159B2 (en) Hybrid snapshot of a global namespace
CN117951094A (zh) 存储空间的回收方法、文件系统、介质和计算设备
CN116975053A (zh) 一种数据处理方法、装置、设备、介质及程序产品
WO2024107195A1 (en) Hadoop distributed file system (hdfs) express bulk file deletion
CN116860700A (zh) 处理分布式文件系统中元数据的方法、装置、设备及介质

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: 20201113

RJ01 Rejection of invention patent application after publication