CN107391280A - 一种小文件的接收和存储方法及装置 - Google Patents

一种小文件的接收和存储方法及装置 Download PDF

Info

Publication number
CN107391280A
CN107391280A CN201710641074.7A CN201710641074A CN107391280A CN 107391280 A CN107391280 A CN 107391280A CN 201710641074 A CN201710641074 A CN 201710641074A CN 107391280 A CN107391280 A CN 107391280A
Authority
CN
China
Prior art keywords
file
small documents
queue
reception
object queue
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
CN201710641074.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.)
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 CN201710641074.7A priority Critical patent/CN107391280A/zh
Publication of CN107391280A publication Critical patent/CN107391280A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种小文件的接收和存储方法及装置。其中,方法包括当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;当判定当前文件为小文件时,为当前文件设置信息标识,并根据信息标识将文件存放在相应的队列中;当检测到目标队列满足预设合并条件时,利用多线程技术对目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各文件的元数据存储在数据库中。实现了快速实时接收小文件,并高速率实时存储海量小文件,大大的缩短了海量小文件的存储时间,有效的解决海量小文件并行接入导致的堵塞的现象,降低了文件丢失率,还降低了HDFS的内存开销,节约了存储空间。

Description

一种小文件的接收和存储方法及装置
技术领域
本发明实施例涉及分布式存储技术领域,特别是涉及一种小文件的接收和存储方法及装置。
背景技术
随着大数据、云计算、物联网技术的迅猛发展,数据呈现大爆炸式增长,以实时传感数据为基础的各类数据流处理逐渐成为当前物联网应用构造的关键,也成为数字城管、智能交通等信息化应用中的研发热点。这类感知数据往往具有海量、高并发、连续、高速的特征,这就对底层的存储系统提出了更高的要求,Hadoop分布式文件存储技术应用而生。
Hadoop分布式文件存储系统(HDFS)通过多台廉价的机器支持大规模的文件存储,伸缩性强,解决了存储空间限制的问题。同时,HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用,而且在出错的情况下也能保持数据存储的可靠性。
HDFS采用主从式架构,由一个NameNode和若干个DataNode组成,其中,NameNode负责管理文件系统的命名空间,DataNode是文件系统的工作节点。NameNode记录文件的元数据信息,并且把元数据信息放在内存中,文件系统所能容纳的文件数目取决于NameNode内存大小。
HDFS中每个文件、目录和数据块的存储信息大约占150个字节,如果有一百万个文件,每个文件单独占一个数据块,至少需要300M内存。大量小文件的存放需要耗费很多的内存资源来记录文件信息,且HDFS中元数据的管理是一个极耗时间的任务,因为它需要至少3台以上的从服务器节点进行合作。对于小文件的I/O,大部分时间花在操作元数据上,大量的小文件增加了元数据的操作负担。可见,当有大量小文件并行地请求存储时,不可避免的会产生文件的接入堵塞甚至丢失现象。
发明内容
本发明实施例的目的是提供一种小文件的接收和存储方法及装置,以解决海量小文件的存储和接收问题。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种小文件的接收和存储方法,包括:
当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;
当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中;
当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
可选的,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
根据哈希算法在服务器集群确定所述目标队列映射的目标文件服务器,并将所述目标队列发送至所述目标文件处理服务器,所述服务器集群为预先利用多台服务器搭建的,以作为文件处理服务器对各队列进行合并操作;
所述目标文件处理服务器从所述目标队列中按照FIFO原则将各所述文件取出,放入待合并文件集,进行合并。
可选的,所述文件的元数据包括所述文件名称、所述文件的占用容量、所述文件对应的待合并文件集的名称及在所述待合并文件集的偏移量、文件的所有者、文件的创建时间。
可选的,所述根据所述信息标识将所述文件存放在相应的队列中包括:
当多个文件具有相同的信息标识时,将各所述文件按照文件占用空间,从大到小的顺序存放在对应的队列中。
可选的,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
可选的,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
当检测目标队列接收文件的时间超过预设时间阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
本发明实施例另一方面提供了一种小文件的接收和存储装置,包括:
文件接收模块,用于当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中;
文件合并模块,用于当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
可选的,所述文件合并模块包括:
哈希映射单元,用于根据哈希算法在服务器集群确定所述目标队列映射的目标文件服务器,并将所述目标队列发送至所述目标文件处理服务器,所述服务器集群为预先利用多台服务器搭建的,以作为文件处理服务器对各队列进行合并操作;
合并单元,用于所述目标文件处理服务器从所述目标队列中按照FIFO原则将各所述文件取出,放入待合并文件集,进行合并。
可选的,所述文件接收模块为当多个文件具有相同的信息标识时,将各所述文件按照文件占用空间,从大到小的顺序存放在对应的队列中的模块。
可选的,所述文件合并模块为当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并的模块。
本发明实施例提供了一种小文件的接收和存储方法,当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;当判定当前文件为小文件时,为当前文件设置信息标识,并根据信息标识将文件存放在相应的队列中;当检测到目标队列满足预设合并条件时,利用多线程技术对目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各文件的元数据存储在数据库中。
本申请提供的技术方案的优点在于,将从前端设备接收到的海量小文件暂时放入缓存服务器的队列中,当队列满足预设条件时,利用多线程技术进行合并操作,然后将合并后的文件通过HDFS客户端上传至HDFS。实现了快速实时接收小文件,并高速率实时存储海量小文件,大大的缩短了海量小文件的存储时间,有效的解决海量小文件并行接入导致的堵塞的现象,降低了文件丢失率,还降低了HDFS的内存开销,节约了存储空间。
此外,本发明实施例还针对小文件的接收和存储方法提供了相应的实现装置,进一步使得所述方法更具有实用性,所述装置具有相应的优点。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种小文件的接收和存储方法的流程示意图;
图2为本发明实施例提供的文件处理服务器和目标队列的一种映射原理示意图;
图3为本发明实施例提供的文件处理服务器和目标队列的另一种映射原理示意图;
图4为本发明实施例提供的小文件的接收和存储装置的一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种小文件的接收和存储方法的流程示意图,应用于HDFS,本发明实施例可包括以下内容:
S101:当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件。
可利用高内存的缓存服务器高速接收前端发送来的文件,并在其中设置监听器,以用于监听缓存服务器中是否有文件存在。
本申请针对海量小文件的接收和存储,故在接收之后,需要进一步的判断当前文件是否为小文件。文件的大小,也就是文件占用的空间容量,例如5M。可通过文件的大小来决定当前接收到的文件是否为小文件,小文件的定义可为大小不超过512kb的文件,当然,也可设置更小的文件,这均不影响本申请的实现。
当判定为小文件时,执行下述步骤;当判定不为小文件时,即大文件直接发送至HDFS客户端上传至HDFS上。
S102:当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中。
当当前接收到的文件为小文件时,缓存服务器给文件添加信息标识,信息标识用于决定当前文件存储的队列,一个队列具有一个唯一的信息标识,也就是拥有相同的信息标识的文件放于同一个队列中。
当当前接收的文件有多个时,且多个文件皆为小文件,并具有相同的信息标识,在进行放入队列中时,可按照各个小文件占用空间的大小,按照从大到小的顺序存放在对应的队列中。
S103:当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
多个小文件放入队列中,何时进行合并,并将其发送至HDFS上,既避免增加HDFS的内存开销,又不至于小文件长时间停滞不发送,影响后续查看或使用,需要进行判断合并的条件,即满足预设合并条件。
考虑到接收的文件的动态变化需求以及文件的访问延迟性,例如在城市智能交通云管理系统中,其在早晚下班高峰期和凌晨接收的文件数量会有极大的差别,可把预设合并条件以时间阈值和数量阈值(各个小文件占用空间之和)两方面考虑。只要满足其中一个阈值条件,就执行后面的合并处理操作。数量阈值即为接收文件的最大字节数,假定其设置为a MB,如果当接收的文件的字节数达到a MB,即使持续时间未到时间阈值,也会将队列中的文件取出进行合并存储。时间阈值可为文件访问的最大延迟时间,假定其设置为t秒,如果当队列接收文件操作已经持续了t秒,即使接收的文件的字节数还未达到数量阈值,文件合并模块也会将该队列中的文件取出进行处理,即
当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
当检测目标队列接收文件的时间超过预设时间阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
当目标队列满足预设合并条件时,可为所述目标队列设置队列信息标示值,所述队列信息标示值可由目标队列的时间戳属性与对应的标识信息构成。
在文件接收高峰期,会有大量的文件队列等待合并处理,为了提高文件队列的处理速度,可使用多台服务器搭建一个集群环境(服务器集群)并行地对队列中的文件进行处理。为了达到文件处理的负载均衡,使用一致性哈希算法将文件队列均衡地分布到各文件处理服务器上,在服务器集群确定目标队列映射的目标文件服务器,并将目标队列发送至目标文件处理服务器,具体过程可按照下述方法进行:
计算各个文件处理服务器节点的哈希值(可为IP地址或者机器名),将其处理空间抽象成一个逻辑环,如图2所示P1、P2、P3、P4为4个文件处理服务器节点,被映射到这个逻辑环上。
计算各个队列的哈希值hash(Key),按照顺时针的方向将其映射到环上距其最近的节点上,如图2所示,队列List1映射到节点P2上,当添加新的服务器节点P5时,如图3所示。调整队列List1到新的节点P5上,同理当P5节点删除时,List1被迁移到它的后继节点P2上。
当目标队列确定映射到目标文件处理服务器上时,文件处理服务器预先创建大文件,并为大文件定义唯一的文件名,大文件用于存放当前合并的文件,也就是说大文件中包含的多个小文件经合并后构成一个大文件。从该队列中按照FIFO的原则将队列中的文件取出放入到待合并文件集内,可定义为F={f1,f2,……,fn},其中n表示大文件中包含的文件数目,fi表示待合并的第i个小文件,遍历F中的文件,以对文件进行合并操作。
元数据为小文件在合并过程中产生的,元数据的结构可为Mi={Sname,Fname,Size,Offset,Owner,CreateTime},其中,Sname为文件名称、Size为文件的占用容量、Fname为文件对应的大文件的名称,Offset为在大文件的偏移量、Owner为文件的所有者、CreateTime为文件的创建时间。
为了减少NameNode的元数据信息,同时考虑到Oracle数据库良好的检索性能,可把小文件的元数据信息存储在Oracle数据库。
在一种具体的实施方式中,大文件的命名方法可为Fname=Rname+CurrentTime;其中,Rname是利用Random()函数,从字符集Chars={abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789}中随机选取5个字符,形成长度为5的字符串,Current Time为当前的系统时间。当然,也可按照其他方式进行,这均不影响本申请的实现。
在一种具体的实施方式中,文件的合并过程可如下所示:
创建大文件,并为其命名为Fname;
if i<=n do;
foreach fi in F do;
获取文件fi的Sname,Size,Owner,CreateTime;
创建文件流in=new FileInputStream(fi),out=new FileOutput Stream(Fname);
将in写到out中;
给文件fi设置偏移量Offset;
将Sname,Fname,Size,Owner,CreateTime信息更新到Oracle数据库;
end foreach,本for循环遍历出待合并文件集F中的小文件写到一个大文件中;
End if;
调用HDFS Client接口,将大文件Fname上传到HDFS。
其中,n表示当前大文件中可包含的文件个数,i为文件个数,fi为第i个文件。
在本发明实施例提供的技术方案中,将从前端设备接收到的海量小文件暂时放入缓存服务器的队列中,当队列满足预设条件时,利用多线程技术进行合并操作,然后将合并后的文件通过HDFS客户端上传至HDFS。实现了快速实时接收小文件,并高速率实时存储海量小文件,大大的缩短了海量小文件的存储时间,有效的解决海量小文件并行接入导致的堵塞的现象,降低了文件丢失率,还降低了HDFS的内存开销,节约了存储空间。
本发明实施例还针对小文件的接收和存储方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的小文件的接收和存储装置进行介绍,下文描述的小文件的接收和存储装置与上文描述的小文件的接收和存储方法可相互对应参照。
参见图4,图4为本发明实施例提供的小文件的接收和存储装置在一种具体实施方式下的结构图,该装置可包括:
文件接收模块401,用于当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中;
文件合并模块402,用于当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
可选的,在本申请的一些实施方式中,所述文件接收模块401可为当多个文件具有相同的信息标识时,将各所述文件按照文件占用空间,从大到小的顺序存放在对应的队列中的模块。
在本申请的另外一些实施方式中,所述文件合并模块402例如可以包括:
哈希映射单元4021,用于根据哈希算法在服务器集群确定所述目标队列映射的目标文件服务器,并将所述目标队列发送至所述目标文件处理服务器,所述服务器集群为预先利用多台服务器搭建的,以作为文件处理服务器对各队列进行合并操作;
合并单元4022,用于所述目标文件处理服务器从所述目标队列中按照FIFO原则将各所述文件取出,放入待合并文件集,进行合并。
在本实施例的一些具体的实施方式下,所述文件合并模块402可为当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并的模块。
在本实施例的另一些具体的实施方式下,所述文件合并模块402还可为当检测目标队列接收文件的时间超过预设时间阈值时,利用多线程技术对所述目标队列中的各文件进行合并的模块。
本发明实施例所述的小文件的接收和存储装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例将从前端设备接收到的海量小文件暂时放入缓存服务器的队列中,当队列满足预设条件时,利用多线程技术进行合并操作,然后将合并后的文件通过HDFS客户端上传至HDFS。实现了快速实时接收小文件,并高速率实时存储海量小文件,大大的缩短了海量小文件的存储时间,有效的解决海量小文件并行接入导致的堵塞的现象,降低了文件丢失率,还降低了HDFS的内存开销,节约了存储空间。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种小文件的接收和存储方法以及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种小文件的接收和存储方法,其特征在于,包括:
当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;
当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中;
当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
2.根据权利要求1所述的小文件的接收和存储方法,其特征在于,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
根据哈希算法在服务器集群确定所述目标队列映射的目标文件服务器,并将所述目标队列发送至所述目标文件处理服务器,所述服务器集群为预先利用多台服务器搭建的,以作为文件处理服务器对各队列进行合并操作;
所述目标文件处理服务器从所述目标队列中按照FIFO原则将各所述文件取出,放入待合并文件集,进行合并。
3.根据权利要求2所述的小文件的接收和存储方法,其特征在于,所述文件的元数据包括所述文件名称、所述文件的占用容量、所述文件对应的大文件的名称及在所述大文件中的偏移量、文件的所有者、文件的创建时间。
4.根据权利要求1所述的小文件的接收和存储方法,其特征在于,所述根据所述信息标识将所述文件存放在相应的队列中包括:
当多个文件具有相同的信息标识时,将各所述文件按照文件占用空间,从大到小的顺序存放在对应的队列中。
5.根据权利要求1-4任意一项所述的小文件的接收和存储方法,其特征在于,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
6.根据权利要求1-4任意一项所述的小文件的接收和存储方法,其特征在于,所述当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并包括:
当检测目标队列接收文件的时间超过预设时间阈值时,利用多线程技术对所述目标队列中的各文件进行合并。
7.一种小文件的接收和存储装置,其特征在于,包括:
文件接收模块,用于当接收到前端发送的文件时,根据所述文件的大小判断所述文件是否为小文件;当判定当前文件为小文件时,为所述文件设置信息标识,并根据所述信息标识将所述文件存放在相应的队列中;
文件合并模块,用于当检测到目标队列满足预设合并条件时,利用多线程技术对所述目标队列中的各文件进行合并,将合并后的文件发送至HDFS,并将合并过程中产生的各所述文件的元数据存储在数据库中。
8.根据权利要求7所述的小文件的接收和存储装置,其特征在于,所述文件合并模块包括:
哈希映射单元,用于根据哈希算法在服务器集群确定所述目标队列映射的目标文件服务器,并将所述目标队列发送至所述目标文件处理服务器,所述服务器集群为预先利用多台服务器搭建的,以作为文件处理服务器对各队列进行合并操作;
合并单元,用于所述目标文件处理服务器从所述目标队列中按照FIFO原则将各所述文件取出,放入待合并文件集,进行合并。
9.根据权利要求8所述的小文件的接收和存储装置,其特征在于,所述文件接收模块为当多个文件具有相同的信息标识时,将各所述文件按照文件占用空间,从大到小的顺序存放在对应的队列中的模块。
10.根据权利要求9所述的小文件的接收和存储装置,其特征在于,所述文件合并模块为当检测目标队列中包含的各文件的占用空间之和超过预设容量阈值时,利用多线程技术对所述目标队列中的各文件进行合并的模块。
CN201710641074.7A 2017-07-31 2017-07-31 一种小文件的接收和存储方法及装置 Pending CN107391280A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710641074.7A CN107391280A (zh) 2017-07-31 2017-07-31 一种小文件的接收和存储方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710641074.7A CN107391280A (zh) 2017-07-31 2017-07-31 一种小文件的接收和存储方法及装置

Publications (1)

Publication Number Publication Date
CN107391280A true CN107391280A (zh) 2017-11-24

Family

ID=60344031

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710641074.7A Pending CN107391280A (zh) 2017-07-31 2017-07-31 一种小文件的接收和存储方法及装置

Country Status (1)

Country Link
CN (1) CN107391280A (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287869A (zh) * 2017-12-20 2018-07-17 江苏省公用信息有限公司 一种基于快速存储设备的海量小文件解决方法
CN108520016A (zh) * 2018-03-21 2018-09-11 四川斐讯信息技术有限公司 基于时钟定时器和多台上传服务器的数据入库方法及系统
CN108932287A (zh) * 2018-05-22 2018-12-04 广东技术师范学院 一种基于Hadoop的海量小文件写入方法
CN109101197A (zh) * 2018-08-15 2018-12-28 郑州云海信息技术有限公司 一种文件存储和访问方法、装置、文件存储器及系统
CN109582644A (zh) * 2018-12-21 2019-04-05 深圳前海微众银行股份有限公司 文件存储方法、装置、设备及计算机可读存储介质
CN109947718A (zh) * 2019-02-25 2019-06-28 全球能源互联网研究院有限公司 一种数据存储方法、存储平台及存储装置
CN110781132A (zh) * 2019-10-24 2020-02-11 深圳前海环融联易信息科技服务有限公司 文件存储的实现方法、装置、及计算机设备
CN111352897A (zh) * 2020-03-02 2020-06-30 广东科徕尼智能科技有限公司 一种实时数据存储方法、设备、存储介质
CN111400247A (zh) * 2020-04-13 2020-07-10 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN112035428A (zh) * 2020-09-11 2020-12-04 科大讯飞股份有限公司 分布式存储系统、方法、装置、电子设备和存储介质
CN112100127A (zh) * 2020-11-12 2020-12-18 广州市玄武无线科技股份有限公司 一种大数据excel文件导入的系统及方法
CN112235422A (zh) * 2020-12-11 2021-01-15 浙江大华技术股份有限公司 数据处理方法、装置、计算机可读存储介质及电子装置
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输系统及其方法
CN114168084A (zh) * 2021-12-10 2022-03-11 中国电信股份有限公司 文件合并方法、文件合并装置、电子设备以及存储介质
CN114564149A (zh) * 2022-02-25 2022-05-31 上海英方软件股份有限公司 一种数据存储方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832525A (en) * 1996-06-24 1998-11-03 Sun Microsystems, Inc. Disk fragmentation reduction using file allocation tables
CN103856567A (zh) * 2014-03-26 2014-06-11 西安电子科技大学 基于Hadoop分布式文件系统的小文件存储方法
CN105183839A (zh) * 2015-09-02 2015-12-23 华中科技大学 一种基于Hadoop的小文件分级索引的存储优化方法
CN105868286A (zh) * 2016-03-23 2016-08-17 中国科学院计算技术研究所 基于分布式文件系统小文件合并的并行追加方法及系统
CN106709010A (zh) * 2016-12-26 2017-05-24 上海斐讯数据通信技术有限公司 一种基于海量小文件高效上传hdfs的方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832525A (en) * 1996-06-24 1998-11-03 Sun Microsystems, Inc. Disk fragmentation reduction using file allocation tables
CN103856567A (zh) * 2014-03-26 2014-06-11 西安电子科技大学 基于Hadoop分布式文件系统的小文件存储方法
CN105183839A (zh) * 2015-09-02 2015-12-23 华中科技大学 一种基于Hadoop的小文件分级索引的存储优化方法
CN105868286A (zh) * 2016-03-23 2016-08-17 中国科学院计算技术研究所 基于分布式文件系统小文件合并的并行追加方法及系统
CN106709010A (zh) * 2016-12-26 2017-05-24 上海斐讯数据通信技术有限公司 一种基于海量小文件高效上传hdfs的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张守利 等: "一种面向海量小文件的文件接收和存储优化方案", 《小型微型计算机系统》 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108287869A (zh) * 2017-12-20 2018-07-17 江苏省公用信息有限公司 一种基于快速存储设备的海量小文件解决方法
CN108520016A (zh) * 2018-03-21 2018-09-11 四川斐讯信息技术有限公司 基于时钟定时器和多台上传服务器的数据入库方法及系统
CN108932287A (zh) * 2018-05-22 2018-12-04 广东技术师范学院 一种基于Hadoop的海量小文件写入方法
CN109101197A (zh) * 2018-08-15 2018-12-28 郑州云海信息技术有限公司 一种文件存储和访问方法、装置、文件存储器及系统
CN109582644A (zh) * 2018-12-21 2019-04-05 深圳前海微众银行股份有限公司 文件存储方法、装置、设备及计算机可读存储介质
CN109947718A (zh) * 2019-02-25 2019-06-28 全球能源互联网研究院有限公司 一种数据存储方法、存储平台及存储装置
CN110781132A (zh) * 2019-10-24 2020-02-11 深圳前海环融联易信息科技服务有限公司 文件存储的实现方法、装置、及计算机设备
CN111352897A (zh) * 2020-03-02 2020-06-30 广东科徕尼智能科技有限公司 一种实时数据存储方法、设备、存储介质
CN111400247A (zh) * 2020-04-13 2020-07-10 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN111400247B (zh) * 2020-04-13 2023-08-01 杭州九州方园科技有限公司 一种用户行为审计方法及文件存储方法
CN112035428A (zh) * 2020-09-11 2020-12-04 科大讯飞股份有限公司 分布式存储系统、方法、装置、电子设备和存储介质
CN112100127A (zh) * 2020-11-12 2020-12-18 广州市玄武无线科技股份有限公司 一种大数据excel文件导入的系统及方法
CN112532724A (zh) * 2020-11-27 2021-03-19 上海爱数信息技术股份有限公司 一种文件传输系统及其方法
CN112235422A (zh) * 2020-12-11 2021-01-15 浙江大华技术股份有限公司 数据处理方法、装置、计算机可读存储介质及电子装置
CN112235422B (zh) * 2020-12-11 2021-03-30 浙江大华技术股份有限公司 数据处理方法、装置、计算机可读存储介质及电子装置
CN114168084A (zh) * 2021-12-10 2022-03-11 中国电信股份有限公司 文件合并方法、文件合并装置、电子设备以及存储介质
CN114564149A (zh) * 2022-02-25 2022-05-31 上海英方软件股份有限公司 一种数据存储方法、装置、设备及存储介质
CN114564149B (zh) * 2022-02-25 2024-03-26 上海英方软件股份有限公司 一种数据存储方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
CN107391280A (zh) 一种小文件的接收和存储方法及装置
CN104969213B (zh) 用于低延迟数据存取的数据流分割
CN105940396B (zh) 分布式存储系统中对象的层级组块
CN101957863B (zh) 数据并行处理方法、装置及系统
US20170155707A1 (en) Multi-level data staging for low latency data access
CN104765840B (zh) 一种大数据分布式存储的方法和装置
CN103442090B (zh) 一种数据分散存储的云计算系统
US20100293333A1 (en) Multiple cache directories
CN104794190B (zh) 一种大数据有效存储的方法和装置
KR101867286B1 (ko) 작업 부하를 고려한 하드웨어 가속화 기반의 대규모 데이터의 분산 처리 장치 및 방법
JP2009529183A (ja) 応答出力キャッシュに対するマルチキャッシュ協調
JP2012510111A5 (zh)
CN104407879A (zh) 一种电网时序大数据并行加载方法
CN109241414A (zh) 基于消息模板的系统消息推送方法及终端设备
US8880504B2 (en) Tag management device, system and recording medium
CN106021585A (zh) 一种基于时空特性的交通事件视频存取方法及系统
CN111708497A (zh) 一种基于hdfs的云环境数据存储优化方法
CN103248636B (zh) 离线下载的系统及方法
CN106156356A (zh) 基于xml的oais信息封装方法及系统
CN110245129A (zh) 一种分布式全局数据去重方法和装置
Nishanth et al. CoHadoop++: A load balanced data co-location in Hadoop Distributed File System
WO2022026984A1 (en) Data field extraction model training for a data intake and query system
JP6237633B2 (ja) 分散ストレージ装置、ストレージノード、データ提供方法およびプログラム
CN106257447A (zh) 云存储服务器的视频存储及检索方法、视频云存储系统
CN107566341A (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: 20171124

RJ01 Rejection of invention patent application after publication