CN107679177A - 一种基于hdfs的小文件存储优化方法、装置、设备 - Google Patents

一种基于hdfs的小文件存储优化方法、装置、设备 Download PDF

Info

Publication number
CN107679177A
CN107679177A CN201710909904.XA CN201710909904A CN107679177A CN 107679177 A CN107679177 A CN 107679177A CN 201710909904 A CN201710909904 A CN 201710909904A CN 107679177 A CN107679177 A CN 107679177A
Authority
CN
China
Prior art keywords
queue
file
merging
combined
unit
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
CN201710909904.XA
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710909904.XA priority Critical patent/CN107679177A/zh
Publication of CN107679177A publication Critical patent/CN107679177A/zh
Pending legal-status Critical Current

Links

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/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • 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
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS

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

Abstract

本发明实施例公开了一种基于HDFS的小文件存储优化方法、装置、设备和计算机存储介质,获取到待合并文件后,从队列集合中选取出能够容纳该待合并文件的一个合并队列,用于存储该待合并文件。若不存在可以容纳待合并文件的合并队列,则选取出剩余空间最小的一个合并队列,当该合并队列中的文件大小未超过预设阈值,或者合并队列的总数超过预设值时,则选取一个容忍队列存储该待合并文件,当文件大小超过预设阈值,并且合并队列的总数未超过预设值,则将该合并队列中包括的所有文件进行合并输出,清空该合并队列,再将待合并文件放入清空后的合并队列中。按照该技术方案进行小文件的存储优化,提升了小文件处理效率。

Description

一种基于HDFS的小文件存储优化方法、装置、设备
技术领域
本发明涉及数据存储技术领域,特别是涉及一种基于HDFS的小文件存储优化方法、装置、设备和计算机存储介质。
背景技术
由Apache基金会所开发的分布式系统基础架构(Hadoop)是当前主流的企业大数据分析平台。Hadoop采用的是分布式文件系统(Hadoop Distributed File System,HDFS)来进行数据存储。HDFS采用主从式架构设计模式(master/slave architecture),一个名称节点(NameNode)和若干数据节点(DataNode)构成HDFS集群。
HDFS的这种单名称节点的设计极大地简化了文件系统的结构,非常适合大文件的存储和读取,然而也因此引发了HDFS的小文件存储效率低的问题。因为HDFS中的每个目录和文件的元数据信息都存放在名称节点的内存中,如果系统中存在大量的小文件(比HDFS数据块(默认为64MB)小得多的文件),就会占用更多的内存来存储元数据信息,例如对于一个大小为1GB大文件,HDFS会将其切分为16个大小为64MB的数据块,此时Namenode内存开销仅为2.4KB,但如果将其切分为1GB的一万个100KB的文件,Namenode的内存开销将增长至1.5MB,即增长了600倍,同时在块大小范围内的小文件则将依然占用64M的空间,处理大量小文件就需要建立更多的映射规约模型(MapReduce)任务,而大量的MapReduce任务间的交互、通信数目也将增大CPU的开销。这些都会使Hadoop集群的整体运行效率呈显著下降态势。
在目前的实际应用中,大量小文件的应用场景越来越多,针对HDFS在处理大量小文件的缺点与不足,现有的解决方法是将小文件合并为一个大文件后再导入HDFS,目前常见的的小文件合并方法往往是设定一个缓冲区阈值,在遍历小文件的同时针对缓冲区队列不断累加文件,当累加总大小超过阈值后,即对缓冲区队列中的文件集合实行合并打包存储。
但是这样的算法常常以“文件体积溢出”作为合并条件,同时忽略了文件体积分布不均的缺点,最终造成的结果就是合并后的大文件体积大小各异,在一定程度上对Hadoop集群中的NameNode节点形成了内存浪费,同时文件体积分布不均也不利于MapReduce框架并行计算高效实施。
可见,如何提升小文件处理的效率,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种基于HDFS的小文件存储优化方法、装置、设备和计算机存储介质,可以提升小文件处理的效率。
为解决上述技术问题,本发明实施例提供一种基于HDFS的小文件存储优化方法,包括:
S10:获取待合并文件;
S11:从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小;若否,则执行S12;若是,则执行S13;
S12:将所述待合并文件加入所述合并队列中;
S13:从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值;若是,则执行S14;若否,则执行S17;
S14:判断所述队列集合中合并队列的总数是否超过预设值;若是,则执行S15;若否,则执行S16;
S15:将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列;并执行S17;
S16:将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中;
S17:将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并返回所述S10,直至遍历完所有待合并文件。
可选的,在所述S10中包括:
选取待处理文件,判断所述待处理文件大小是否超过上限值;
若否,则将所述文件作为待合并文件。
可选的,还包括:
判断所述队列集合是否存在未进行合并输出的合并队列;
若是,则将所述合并队列中包括的所有文件进行合并输出。
本发明实施例还提供了一种基于HDFS的小文件存储优化装置,包括获取单元、第一判断单元、加入单元、第二判断单元、第三判断单元、输出单元、清空单元和转换单元;
所述获取单元,用于获取待合并文件;
所述第一判断单元,用于从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小;若否,则触发所述加入单元;若是,则触发所述第二判断单元;
所述加入单元,用于将所述待合并文件加入所述合并队列中;
所述第二判断单元,用于从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值;若是,则触发所述第三判断单元;若否,则触发所述转换单元;
所述第三判断单元,用于判断所述队列集合中合并队列的总数是否超过预设值;若是,则触发所述输出单元;若否,则触发所述清空单元;
所述输出单元,用于将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列;并触发所述转换单元;
所述清空单元,用于将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中;
所述转换单元,用于将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并触发所述获取单元,直至遍历完所有待合并文件。
可选的,所述获取单元包括判断子单元和作为子单元;
所述判断子单元,用于选取待处理文件,判断所述待处理文件大小是否超过上限值;若否,则触发所述作为子单元;
所述作为子单元,用于将所述文件作为待合并文件。
可选的,还包括第四判断单元,所述第四判断单元,用于判断所述队列集合是否存在未进行合并输出的合并队列;若是,则触发所述输出单元;
所述输出单元还用于将所述合并队列中包括的所有文件进行合并输出。
本发明实施例还提供了一种基于HDFS的小文件存储优化设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述基于HDFS的小文件存储优化方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于HDFS的小文件存储优化方法的步骤。
由上述技术方案可以看出,获取到待合并文件后,从队列集合中选取出剩余空间最大的一个合并队列,判断待合并文件的大小是否大于合并队列的剩余空间的大小;当待合并文件的大小大于合并队列的剩余空间的大小时,则将待合并文件加入该合并队列中;当待合并文件的大小不大于合并队列的剩余空间的大小时,则从队列集合中选取出剩余空间最小的一个合并队列,并判断该合并队列中的文件大小是否超过预设阈值;当未超过预设阈值,则将待合并文件加入到一个容忍队列中,并将该容忍队列转换为合并队列,并放入到所述队列集合中。当超过预设阈值,则进一步判断队列集合中合并队列的总数是否超过预设值;总数超过预设值,则将该合并队列中的文件合并输出,清空该合并队列,并将清空后的该合并队列转换为容忍队列,从而选取一个容忍队列存储该待合并文件;总数未超过预设值,则将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中,重复执行上述操作,直至遍历完所有待合并文件。在该技术方案中根据小文件的体积大小,使其进行均匀分布、再传至合并后的大文件中,同时将文件合并条件合并队列中的文件大小是否超过预设阈值,由此保证合并后的大文件在HDFS中不会被分割出多余的块。在一定程度上降低了名称节点内存负载,同时文件体积均匀分布也将利于MapReduce并行计算的效率发挥,提升了小文件处理效率。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于HDFS的小文件存储优化方法的流程图;
图2为本发明实施例提供的一种基于HDFS的小文件存储优化装置的结构示意图;
图3为本发明实施例提供的一种基于HDFS的小文件存储优化设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
接下来,详细介绍本发明实施例所提供的一种基于HDFS的小文件存储优化方法。图1为本发明实施例提供的一种基于HDFS的小文件存储优化方法的流程图,该方法包括:
S10:获取待合并文件。
在本发明实施例中,通过将小文件进行合并输出的方式,提升小文件的处理效率。系统中的待处理文件往往有多个,需要判断所述待处理文件大小是否超过上限值;上限值可以是判断文件是否属于小文件的一个衡量标准,当待处理文件大小未超过上限值时,则说明该待处理文件属于小文件,则将所述文件作为待合并文件,进行后续处理。
S11:从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小。
在本发明实施例中,可以设置两种类型的队列,一种是合并队列,用于存储待合并文件;另一种是容忍队列,可以作为备用队列,当待合并文件体积偏大,没有合适的合并队列存储待合并文件时,可以用容忍队列存储待合并文件,此时该容忍队列即转化为了合并队列,设置容忍队列可以实现数据的缓冲,保证合并后文件大小尽量均匀分布。队列集合可以用于表示存储各个合并队列的集合。
其中,合并队列和容忍队列可以互相转化,当一个队列用于存储待合并文件时,则该队列即为合并队列;当一个队列作为备用队列时,则该队列即为容忍队列。容忍队列的个数可以设置的小于合并队列的个数。
为了能够快速准确的选取出一个合适的合并队列,每次向合并队列中加入待合并文件时,可以从队列集合中选取一个剩余空间最大的合并队列,通过比较待合并文件的大小和该合并队列的剩余空间的大小,来判断该合并队列是否可以存储待合并文件。
当待合并文件的大小大于所述合并队列的剩余空间的大小时,则说明该合并队列没有足够的剩余空间能够容纳该待合并文件,由于该合并队列是队列集合中剩余空间最大的一个合并队列,此时,该队列集合中的其它合并队列肯定也不存在剩余空间可以容纳该待合并文件的合并队列,对此可以执行S13。
当待合并文件的大小小于等于所述合并队列的剩余空间的大小时,则说明该合并队列有足够的剩余空间能够容纳该待合并文件,则执行S12。
S12:将所述待合并文件加入所述合并队列中。
S13:从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值。
当队列集合中没有可以直接存储待合并文件的合并队列时,说明队列集合中各个合并队列的剩余空间均有限,为了实现待合并文件的合并处理,可以对合并队列进行清空处理,或者是选取一个容忍队列存储该待合并文件。
在具体实现中,可以从队列集合中选取出剩余空间最小的一个合并队列,判断该合并队列中的文件大小是否超过预设阈值。
预设阈值可以是合并队列中文件进行合并输出的一个依据。为了避免合并队列中文件体积溢出,保证合并后的大文件在HDFS中不会被分割出多余的块,预设阈值可以以合并队列的存储空间为基准进行设置,例如,可以将预设阈值设置为合并队列中存储空间大小的95%。其中,预设阈值的具体取值,可以根据实际需求进行调整,本发明实施例对于预设阈值的取值不做具体限定。
选取出剩余空间最小的一个合并队列,当该合并队列中的文件大小超过预设阈值,则说明该合并队列中的文件可以进行合并输出,则执行S14;当该合并队列中的文件大小未超过预设阈值,则说明该合并队列中的文件还未达到合并输出的条件,而此时队列集合中又没有合适的合并队列用于存储待合并文件,针对该种情况,可以执行S17。
S14:判断所述队列集合中合并队列的总数是否超过预设值。
预设值可以是合并队列个数的上限值,当队列集合中合并队列的总数未超过预设值时,则执行S16;若当队列集合中合并队列的总数超过预设值时,则说明队列集合中的合并队列的个数已经达到上限值,为了有效控制合并队列的总数,则执行S15。
S15:将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列,并执行S17。
当队列集合中合并队列的总数超过预设值,为了有效控制合并队列的总数,清空后的合并队列将不插入任何文件,而是直接转换为一个容忍队列。而此时为了存储待合并文件则可以执行S17的操作。
S16:将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中。
将文件进行合并输出即将文件统一打包合并存入HDFS。
S17:将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并返回所述S10,直至遍历完所有待合并文件。
当没有合适的合并队列可以存储待合并文件时,则可以该待合并文件插入一个容忍队列中,此时,该容忍队列将转换为合并队列,并参与到下一轮的合并队列的挑选中。
每个待合并文件可以按照上述S10至S17的步骤进行合并处理,当完成所有待合并文件的处理后,则可以结束操作。
由上述技术方案可以看出,获取到待合并文件后,从队列集合中选取出剩余空间最大的一个合并队列,判断待合并文件的大小是否大于合并队列的剩余空间的大小;当待合并文件的大小大于合并队列的剩余空间的大小时,则将待合并文件加入该合并队列中;当待合并文件的大小不大于合并队列的剩余空间的大小时,则从队列集合中选取出剩余空间最小的一个合并队列,并判断该合并队列中的文件大小是否超过预设阈值;当未超过预设阈值,则将待合并文件加入到一个容忍队列中,并将该容忍队列转换为合并队列,并放入到所述队列集合中。当超过预设阈值,则进一步判断队列集合中合并队列的总数是否超过预设值;总数超过预设值,则将该合并队列中的文件合并输出,清空该合并队列,并将清空后的该合并队列转换为容忍队列,从而选取一个容忍队列存储该待合并文件;总数未超过预设值,则将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中,重复执行上述操作,直至遍历完所有待合并文件。在该技术方案中根据小文件的体积大小,使其进行均匀分布、再传至合并后的大文件中,同时将文件合并条件合并队列中的文件大小是否超过预设阈值,由此保证合并后的大文件在HDFS中不会被分割出多余的块。在一定程度上降低了名称节点内存负载,同时文件体积均匀分布也将利于MapReduce并行计算的效率发挥,提升了小文件处理效率。
在上述介绍中可知,当合并队列中文件大小超过预设阈值后,则可以将该合并队列中的文件统一打包合并存入HDFS,但是在实际应用中,当遍历完所有的待合并文件后,可能会存在合并队列中文件大小未超过预设阈值的合并队列,对此,可以判断所述队列集合是否存在未进行合并输出的合并队列;若是,则将所述合并队列中包括的所有文件进行合并输出。
通过该判断过程,可以有效解决所有尚未合并的文件仍留存于合并队列中的问题。
图2为本发明实施例提供的一种基于HDFS的小文件存储优化装置的结构示意图,包括获取单元21、第一判断单元22、加入单元23、第二判断单元24、第三判断单元25、输出单元26、清空单元27和转换单元28;
所述获取单元21,用于获取待合并文件。
所述第一判断单元22,用于从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小;若否,则触发所述加入单元23;若是,则触发所述第二判断单元24。
所述加入单元23,用于将所述待合并文件加入所述合并队列中。
所述第二判断单元24,用于从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值;若是,则触发所述第三判断单元25;若否,则触发所述转换单元28。
所述第三判断单元25,用于判断所述队列集合中合并队列的总数是否超过预设值;若是,则触发所述单元26;若否,则触发所述清空单元27。
所述输出单元26,用于将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列;并触发所述转换单元28。
所述清空单元27,用于将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中。
所述转换单元28,用于将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并触发所述获取单元21,直至遍历完所有待合并文件。
可选的,所述获取单元包括判断子单元和作为子单元;
所述判断子单元,用于选取待处理文件,判断所述待处理文件大小是否超过上限值;若否,则触发所述作为子单元;
所述作为子单元,用于将所述文件作为待合并文件。
可选的,还包括第四判断单元,所述第四判断单元,用于判断所述队列集合是否存在未进行合并输出的合并队列;若是,则触发所述输出单元;
所述输出单元还用于将所述合并队列中包括的所有文件进行合并输出。
图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。
由上述技术方案可以看出,获取到待合并文件后,从队列集合中选取出剩余空间最大的一个合并队列,判断待合并文件的大小是否大于合并队列的剩余空间的大小;当待合并文件的大小大于合并队列的剩余空间的大小时,则将待合并文件加入该合并队列中;当待合并文件的大小不大于合并队列的剩余空间的大小时,则从队列集合中选取出剩余空间最小的一个合并队列,并判断该合并队列中的文件大小是否超过预设阈值;当未超过预设阈值,则将待合并文件加入到一个容忍队列中,并将该容忍队列转换为合并队列,并放入到所述队列集合中。当超过预设阈值,则进一步判断队列集合中合并队列的总数是否超过预设值;总数超过预设值,则将该合并队列中的文件合并输出,清空该合并队列,并将清空后的该合并队列转换为容忍队列,从而选取一个容忍队列存储该待合并文件;总数未超过预设值,则将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中,重复执行上述操作,直至遍历完所有待合并文件。在该技术方案中根据小文件的体积大小,使其进行均匀分布、再传至合并后的大文件中,同时将文件合并条件合并队列中的文件大小是否超过预设阈值,由此保证合并后的大文件在HDFS中不会被分割出多余的块。在一定程度上降低了名称节点内存负载,同时文件体积均匀分布也将利于MapReduce并行计算的效率发挥,提升了小文件处理效率。
图3为本发明实施例提供的一种基于HDFS的小文件存储优化设备30的硬件结构示意图,包括:存储器31,用于存储计算机程序;处理器32,用于执行所述计算机程序以实现如上述基于HDFS的小文件存储优化方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述基于HDFS的小文件存储优化方法的步骤。
以上对本发明实施例所提供的一种基于HDFS的小文件存储优化方法、装置、设备和计算机存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (8)

1.一种基于HDFS的小文件存储优化方法,其特征在于,包括:
S10:获取待合并文件;
S11:从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小;若否,则执行S12;若是,则执行S13;
S12:将所述待合并文件加入所述合并队列中;
S13:从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值;若是,则执行S14;若否,则执行S17;
S14:判断所述队列集合中合并队列的总数是否超过预设值;若是,则执行S15;若否,则执行S16;
S15:将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列;并执行S17;
S16:将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中;
S17:将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并返回所述S10,直至遍历完所有待合并文件。
2.根据权利要求1所述的方法,其特征在于,在所述S10中包括:
选取待处理文件,判断所述待处理文件大小是否超过上限值;
若否,则将所述文件作为待合并文件。
3.根据权利要求1所述的方法,其特征在于,还包括:
判断所述队列集合是否存在未进行合并输出的合并队列;
若是,则将所述合并队列中包括的所有文件进行合并输出。
4.一种基于HDFS的小文件存储优化装置,其特征在于,包括获取单元、第一判断单元、加入单元、第二判断单元、第三判断单元、输出单元、清空单元和转换单元;
所述获取单元,用于获取待合并文件;
所述第一判断单元,用于从队列集合中选取出剩余空间最大的一个合并队列,判断所述待合并文件的大小是否大于所述合并队列的剩余空间的大小;若否,则触发所述加入单元;若是,则触发所述第二判断单元;
所述加入单元,用于将所述待合并文件加入所述合并队列中;
所述第二判断单元,用于从队列集合中选取出剩余空间最小的一个合并队列,判断所述合并队列中的文件大小是否超过预设阈值;若是,则触发所述第三判断单元;若否,则触发所述转换单元;
所述第三判断单元,用于判断所述队列集合中合并队列的总数是否超过预设值;若是,则触发所述输出单元;若否,则触发所述清空单元;
所述输出单元,用于将所述合并队列中的文件合并输出,清空所述合并队列,并将清空后的所述合并队列转换为容忍队列;并触发所述转换单元;
所述清空单元,用于将所述合并队列中包括的所有文件进行合并输出,清空所述合并队列,并将所述待合并文件放入清空后的所述合并队列中;
所述转换单元,用于将所述待合并文件加入到一个容忍队列中,并将所述容忍队列转换为合并队列,并放入到所述队列集合中;并触发所述获取单元,直至遍历完所有待合并文件。
5.根据权利要求4所述的装置,其特征在于,所述获取单元包括判断子单元和作为子单元;
所述判断子单元,用于选取待处理文件,判断所述待处理文件大小是否超过上限值;若否,则触发所述作为子单元;
所述作为子单元,用于将所述文件作为待合并文件。
6.根据权利要求4所述的装置,其特征在于,还包括第四判断单元,所述第四判断单元,用于判断所述队列集合是否存在未进行合并输出的合并队列;若是,则触发所述输出单元;
所述输出单元还用于将所述合并队列中包括的所有文件进行合并输出。
7.一种基于HDFS的小文件存储优化设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至3任意一项所述基于HDFS的小文件存储优化方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述基于HDFS的小文件存储优化方法的步骤。
CN201710909904.XA 2017-09-29 2017-09-29 一种基于hdfs的小文件存储优化方法、装置、设备 Pending CN107679177A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710909904.XA CN107679177A (zh) 2017-09-29 2017-09-29 一种基于hdfs的小文件存储优化方法、装置、设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710909904.XA CN107679177A (zh) 2017-09-29 2017-09-29 一种基于hdfs的小文件存储优化方法、装置、设备

Publications (1)

Publication Number Publication Date
CN107679177A true CN107679177A (zh) 2018-02-09

Family

ID=61137916

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710909904.XA Pending CN107679177A (zh) 2017-09-29 2017-09-29 一种基于hdfs的小文件存储优化方法、装置、设备

Country Status (1)

Country Link
CN (1) CN107679177A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595567A (zh) * 2018-04-13 2018-09-28 郑州云海信息技术有限公司 一种小文件的合并方法、装置、设备及可读存储介质
CN109902067A (zh) * 2019-02-15 2019-06-18 杭州数梦工场科技有限公司 文件处理方法、装置、存储介质及计算机设备
CN110069466A (zh) * 2019-04-15 2019-07-30 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN111949312A (zh) * 2020-08-14 2020-11-17 曙光信息产业(北京)有限公司 数据模块的打包方法、装置、计算机设备和存储介质
CN112434000A (zh) * 2020-11-20 2021-03-02 苏州浪潮智能科技有限公司 一种基于hdfs的小文件合并方法、装置及设备
CN113568877A (zh) * 2020-04-28 2021-10-29 杭州海康威视数字技术股份有限公司 一种文件合并方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678579A (zh) * 2013-12-12 2014-03-26 浪潮电子信息产业股份有限公司 一种小文件存储效率的优化方法
CN104536959A (zh) * 2014-10-16 2015-04-22 南京邮电大学 一种Hadoop存取海量小文件的优化方法
CN105404652A (zh) * 2015-10-29 2016-03-16 河海大学 一种基于hdfs的海量小文件处理方法
CN105653592A (zh) * 2016-01-28 2016-06-08 浪潮软件集团有限公司 一种基于hdfs的小文件合并工具和方法
CN105868286A (zh) * 2016-03-23 2016-08-17 中国科学院计算技术研究所 基于分布式文件系统小文件合并的并行追加方法及系统
CN105956183A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司电力调度控制中心 一种分布式数据库中海量小文件的多级优化存储方法及系统
US20160321310A1 (en) * 2015-04-30 2016-11-03 Hamoud ALSHAMMARI Enhanced hadoop framework for big-data applications
CN106709010A (zh) * 2016-12-26 2017-05-24 上海斐讯数据通信技术有限公司 一种基于海量小文件高效上传hdfs的方法及系统
CN107045531A (zh) * 2017-01-20 2017-08-15 郑州云海信息技术有限公司 一种优化hdfs小文件存取的系统及方法
CN107168802A (zh) * 2017-05-18 2017-09-15 郑州云海信息技术有限公司 一种云存储中小文件的合并方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678579A (zh) * 2013-12-12 2014-03-26 浪潮电子信息产业股份有限公司 一种小文件存储效率的优化方法
CN104536959A (zh) * 2014-10-16 2015-04-22 南京邮电大学 一种Hadoop存取海量小文件的优化方法
US20160321310A1 (en) * 2015-04-30 2016-11-03 Hamoud ALSHAMMARI Enhanced hadoop framework for big-data applications
CN105404652A (zh) * 2015-10-29 2016-03-16 河海大学 一种基于hdfs的海量小文件处理方法
CN105653592A (zh) * 2016-01-28 2016-06-08 浪潮软件集团有限公司 一种基于hdfs的小文件合并工具和方法
CN105868286A (zh) * 2016-03-23 2016-08-17 中国科学院计算技术研究所 基于分布式文件系统小文件合并的并行追加方法及系统
CN105956183A (zh) * 2016-05-30 2016-09-21 广东电网有限责任公司电力调度控制中心 一种分布式数据库中海量小文件的多级优化存储方法及系统
CN106709010A (zh) * 2016-12-26 2017-05-24 上海斐讯数据通信技术有限公司 一种基于海量小文件高效上传hdfs的方法及系统
CN107045531A (zh) * 2017-01-20 2017-08-15 郑州云海信息技术有限公司 一种优化hdfs小文件存取的系统及方法
CN107168802A (zh) * 2017-05-18 2017-09-15 郑州云海信息技术有限公司 一种云存储中小文件的合并方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张呈: "Hadoop集群下海量小文件优化处理", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
李慧莹: "基于HDFS的小文件存储方法的研究与优化", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595567A (zh) * 2018-04-13 2018-09-28 郑州云海信息技术有限公司 一种小文件的合并方法、装置、设备及可读存储介质
CN109902067A (zh) * 2019-02-15 2019-06-18 杭州数梦工场科技有限公司 文件处理方法、装置、存储介质及计算机设备
CN109902067B (zh) * 2019-02-15 2020-11-27 杭州数梦工场科技有限公司 文件处理方法、装置、存储介质及计算机设备
CN110069466A (zh) * 2019-04-15 2019-07-30 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN110069466B (zh) * 2019-04-15 2021-02-19 武汉大学 一种面向分布式文件系统的小文件存储方法及装置
CN113568877A (zh) * 2020-04-28 2021-10-29 杭州海康威视数字技术股份有限公司 一种文件合并方法、装置、电子设备及存储介质
CN111949312A (zh) * 2020-08-14 2020-11-17 曙光信息产业(北京)有限公司 数据模块的打包方法、装置、计算机设备和存储介质
CN111949312B (zh) * 2020-08-14 2024-02-09 曙光信息产业(北京)有限公司 数据模块的打包方法、装置、计算机设备和存储介质
CN112434000A (zh) * 2020-11-20 2021-03-02 苏州浪潮智能科技有限公司 一种基于hdfs的小文件合并方法、装置及设备
CN112434000B (zh) * 2020-11-20 2022-12-27 苏州浪潮智能科技有限公司 一种基于hdfs的小文件合并方法、装置及设备

Similar Documents

Publication Publication Date Title
CN107679177A (zh) 一种基于hdfs的小文件存储优化方法、装置、设备
CN102332029B (zh) 一种基于Hadoop 的海量可归类小文件关联存储方法
CN103778148B (zh) Hadoop分布式文件系统数据文件的生命周期管理方法和设备
CN104023088B (zh) 一种应用于分布式文件系统的存储服务器选择方法
CN103425756B (zh) 一种hdfs中数据块的副本管理策略
CN102385554B (zh) 重复数据删除系统的优化方法
CN110147204B (zh) 一种元数据落盘方法、装置、系统及计算机可读存储介质
CN110347651A (zh) 基于云存储的数据同步方法、装置、设备及存储介质
CN107045422A (zh) 分布式存储方法和设备
CN104778222B (zh) 基于usb存储设备的媒体库建立及更新方法
CN107045531A (zh) 一种优化hdfs小文件存取的系统及方法
CN107197053A (zh) 一种负载均衡方法和装置
CN104111924B (zh) 一种数据库系统
CN110018788A (zh) 分级存储方法、装置、电子设备及计算机可读存储介质
CN102523158A (zh) 一种基于权重的元数据服务器集群负载均衡方法
CN103299268B (zh) 用于确定用户组对数据元素组的数据访问权限的方法及装置
CN103631894A (zh) 一种基于hdfs的动态副本管理方法
CN103198027A (zh) 一种存储文件和提供文件的方法和装置
CN103559229A (zh) 基于MapFile的小文件管理服务SFMS系统及其使用方法
CN104123237A (zh) 海量小文件分级存储方法及系统
CN104572505A (zh) 一种保证海量数据缓存最终一致性的系统及方法
CN110007870A (zh) 一种存储设备写请求处理方法及相关装置
CN105915626B (zh) 一种面向云存储的数据副本初始放置方法
CN106021566A (zh) 一种提高单台数据库并发处理能力的方法、装置及系统
Gao et al. An effective merge strategy based hierarchy for improving small file problem on HDFS

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180209