文件处理方法、装置、电子设备和可读存储介质制造方法及图纸

技术编号:36038433 阅读:12 留言:0更新日期:2022-12-21 10:43
本申请公开了一种文件处理方法、装置、电子设备和可读存储介质,属于数据处理技术领域。其中,所述方法包括:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。据写入所述目标存储文件。据写入所述目标存储文件。

【技术实现步骤摘要】
文件处理方法、装置、电子设备和可读存储介质


[0001]本申请属于数据处理
,具体涉及一种文件处理方法、装置、电子设备和可读存储介质。

技术介绍

[0002]目前,网络信息服务和大数据技术飞速发展,使得互联网中的数据急剧增长。为了存储和处理日益增长的数据,诞生了分布式文件系统。因其高速性、低成本、高扩展性、高灵活性以及强容错能力,被广泛应用于海量数据存储领域。
[0003]分布式文件系统中文件的存储是以分块的形式存储的,通常一个文件会被切分成大小相等的若干块,而每个块的大小(blocksize)可以通过配置参数来规定,默认的大小一般是128M。但是,对于大量小文件的存储,因为每个块都会有150字节的大小的元数据存储在管理节点的内存中,大量的小文件会将命名空间(NameNode)的内存耗光。
[0004]可见,在现有技术中,在存储和处理海量小文件(lots of small files,简称LOSF)时,因大量的小文件会将NameNode的内存耗光,从而导致系统性能受到影响。

技术实现思路

[0005]本申请实施例的目的是提供一种文件处理方法,能够解决因大量的小文件会将NameNode内存耗光,从而导致系统性能受到影响的问题。
[0006]第一方面,本申请实施例提供了一种文件处理方法,该方法包括:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
[0007]第二方面,本申请实施例提供了一种文件处理装置,该装置包括:第一确定模块,用于在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取模块,用于获取目标块,所述目标块中的缓存数据不满足预设条件;第一写入模块,用于将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块量;第二写入模块,用于在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。
[0008]第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
[0009]第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
[0010]第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述
通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
[0011]第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
[0012]这样,在本申请的实施例中,在对大量小文件进行存储和处理时,首先在系统上查找未存满的存储文件(如目标存储文件),然后,在本地的临时块(如目标块)中缓存小文件(如第一子文件)数据。其中,可在临时块中持续缓存数据,直至临时块中的缓存数据满足预设条件,再将缓存数据写入系统的存储文件,直至该存储文件中的存储数据容量达到配置的阈值(如第一阈值)。可见,基于本申请的实施例,大量小文件可先在本地合并缓存,再写入系统,从而不会将系统的NameNode的内存耗光,优化系统性能。
附图说明
[0013]图1是本申请实施例的文件处理方法的流程图;
[0014]图2是本申请实施例的目标块的结构示意图;
[0015]图3是本申请实施例的目标存储文件的结构示意图;
[0016]图4是本申请实施例的文件处理装置的框图;
[0017]图5是本申请实施例的电子设备的硬件结构示意图之一;
[0018]图6是本申请实施例的电子设备的硬件结构示意图之二。
具体实施方式
[0019]下面将结合本申请实施例的附图,对本申请实施例的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
[0020]本申请的说明书和权利要求书的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
[0021]本申请实施例提供的文件处理方法,其执行主体可以是本申请实施例提供的文件处理装置,或者集成了该文件处理装置的电子设备,其中该文件处理装置可以采用硬件或软件的方式实现。
[0022]下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的文件处理方法进行详细地说明。
[0023]图1示出了本申请一个实施例的文件处理方法的流程图,以该方法应用于电子设备进行举例,包括:
[0024]步骤110:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值。
[0025]可选地,第一子文件为小容量文件。
[0026]可选地,目标存储文件为分布式文件系统上的文件。
[0027]例如,分布式文件系统为Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)。
[0028]可选地,在写入第一子文件时,首先初始化一个写入流。例如,检查HDFS的待写入目录下是否有存储数据容量小于第一阈值的文件,如果有,则打开该文件,作为目标存储文件。反之,则可以创建一个新文件,写入元数据信息,作为目标存储文件。
[0029]可选地,第一阈值配置为2G。
[0030]步骤120:获取目标块,目标块中的缓存数据不满足预设条件。
[0031]可选地,目标块为一个临时块,用于在本地缓存数据。
[0032]在该步骤中,目标块中的缓存数据不满足预设条件。
[0033]步骤130:将第一子文件的第一存储长度信息和第一子文件写入目标块。
[0034]可选地,在目标块中,先写入第一存储长度信息(即第一子文件的长度),再写入第一子文件的文件内容。
[0035]可选地,第一存储长度信息占用2个字节。
[0036]在本实施例中,目标块可缓存多个子文件。
...

【技术保护点】

【技术特征摘要】
1.一种文件处理方法,其特征在于,所述方法包括:在写入第一子文件的情况下,确定目标存储文件,所述目标存储文件中的存储数据的容量小于第一阈值;获取目标块,所述目标块中的缓存数据不满足预设条件;将所述第一子文件的第一存储长度信息和所述第一子文件写入所述目标块;在所述目标块中的缓存数据满足所述预设条件的情况下,将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件。2.根据权利要求1所述的方法,其特征在于,所述目标块中的缓存数据满足预设条件,包括以下任一项:所述目标块中的缓存数据的容量大于或者等于第二阈值;所述目标块中的缓存数据所对应的缓存时长大于或者等于第三阈值。3.根据权利要求1所述的方法,其特征在于,所述将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件之前,所述方法还包括:对所述目标块中的缓存数据进行压缩处理。4.根据权利要求1所述的方法,其特征在于,所述获取目标块之后,所述方法还包括:根据所述目标存储文件中存储数据的第三存储长度信息,确定所述目标块在所述目标存储文件中的第一偏移量信息;根据所述目标块中缓存数据的第四存储长度信息,确定所述第一子文件在所述目标块中的第二偏移量信息;在将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件的情况下,所述方法还包括:根据所述第一子文件,关联所述目标存储文件的目标识别信息、所述第一偏移量信息和所述第二偏移量信息。5.根据权利要求4所述的方法,其特征在于,所述将所述目标块的第二存储长度信息和所述目标块中的缓存数据写入所述目标存储文件之后,所述方法还包括:在读取所述第一子文件的情况下,根据所述目标识别信息,确定所述目标存储文件;根据所述第一偏移量信息和所述第二存储长度信息,在所述目标存储文件中读取所述目标块对应的缓存数据;根据所述第二偏移量信息和所述第一存储长度信息,在所述目标块对应的...

【专利技术属性】
技术研发人员:张帅
申请(专利权)人:南京维沃软件技术有限公司
类型:发明
国别省市:

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

1