CN115185903A - 一种文件处理方法、装置、设备及介质 - Google Patents

一种文件处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN115185903A
CN115185903A CN202210727055.7A CN202210727055A CN115185903A CN 115185903 A CN115185903 A CN 115185903A CN 202210727055 A CN202210727055 A CN 202210727055A CN 115185903 A CN115185903 A CN 115185903A
Authority
CN
China
Prior art keywords
file
data node
small
name
target small
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
CN202210727055.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.)
Jinan Inspur Data Technology Co Ltd
Original Assignee
Jinan Inspur Data 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 Jinan Inspur Data Technology Co Ltd filed Critical Jinan Inspur Data Technology Co Ltd
Priority to CN202210727055.7A priority Critical patent/CN115185903A/zh
Publication of CN115185903A publication Critical patent/CN115185903A/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/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/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

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

本申请公开了一种文件处理方法、装置、设备及介质,涉及计算机技术领域,包括:基于预设的聚合属性参数将若干个小文件聚合为大文件;向分布式文件系统中的名称节点发送文件写入请求,并在接收到名称节点返回的数据节点信息后,将大文件写入相应的数据节点;基于目标小文件的聚合属性参数向名称节点发送文件读取请求,并在接收到名称节点返回的数据节点信息后,向相应的数据节点发送文件读取请求,以便在接收到数据节点返回的目标小文件后,将目标小文件保存至本地。可见,本申请将若干个小文件聚合为大文件,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。

Description

一种文件处理方法、装置、设备及介质
技术领域
本发明涉及计算机技术领域,特别涉及一种文件处理方法、装置、设备及介质。
背景技术
信息化程度的加深,使得数据成为了无形的资产和财富。分布式文件系统(HDFS,Hadoop Distributed File System)能够更好地存储、计算数据,实现数据共享、备份、容灾。随着大数据时代的发展,海量存储和计算已成为不可或缺的一部分。
分布式文件系统是分布式领域的一个应用,用于存储文件通过目录树来定位文件;其次,分布式文件系统由很多服务器联合起来实现其功能,集群中的服务器有各自的角色。分布式场景就是使用大量的廉价机器组成的集群去执行大规模运算,这包括大规模的计算和大规模的存储。分片机制和流式存储让分布式文件系统在处理大文件时得心应手,但在处理小文件时性能就特别低。理由如下:首先,名称节点(NameNode,NN)作为分布式文件系统的管理者保存着所有数据的元数据,所述元数据包括但不限于文件位置、所有者、权限等,所述名称节点还用于控制客户端(client)对文件的访问,为数据节点(DataNode,DN)分配任务,维护edits(编辑)日志和镜像文件(fsimage)。这些元数据存在于内存中,并且每一条元数据占用了150byte(字节)的容量。由于一台服务器的内存是固定,因此元数据越多,则对内存的压力就越大,如果分布式文件系统去处理海量小文件时就会对名称节点的内存造成很大压力,其次,寻道时间要超过读取时间。
为此,如何减少名称节点内存的使用以减轻其内存压力是本领域亟待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种文件处理方法、装置、设备及介质,能够减少名称节点内存的使用以减轻其内存压力,其具体方案如下:
第一方面,本申请公开了一种文件处理方法,包括:
基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
可选的,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件之前,还包括:
启动小文件聚合属性开关;
从目标文件夹中确定出若干个小文件,并确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件。
可选的,所述确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件,包括:
确定所述小文件所属的大文件的文件标识以及所述小文件在所述所属的大文件中的聚合顺序,得到所述若干个待聚合小文件;
相应的,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:
按照所述小文件在所述所属的大文件中的聚合顺序,将具有相同所述文件标识的所述小文件聚合为同一个所述大文件。
可选的,所述在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点,包括:
在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。
可选的,所述基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,包括:
基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置;
相应的,所述在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地,包括:
当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。
可选的,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:
基于预设的聚合属性参数以及若干个待聚合小文件的文件大小,将所述待聚合小文件聚合为第一大文件或第二大文件;其中,所述第一大文件的文件大小为预设的文件大小,所述第二文件的文件大小大于所述预设的文件大小。
可选的,所述根据所述数据节点信息将所述大文件写入至相应的数据节点,包括:
如果所述大文件为所述第二大文件,则对所述大文件进行切分,得到若干个文件大小为所述预设的文件大小的子文件,并根据所述数据节点信息将所述子文件分别写入至相应的数据节点。
第二方面,本申请公开了一种文件处理装置,包括:
聚合模块,用于基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
文件写入模块,用于向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
文件读取模块,用于基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
第三方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的文件处理方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的文件处理方法。
可见,本申请提出了一种文件处理方法,包括:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。由此可见,本申请将若干个小文件聚合为大文件,然后再将大文件写入相应的数据节点,并且能够根据聚合后大文件的属性参数进行文件的读取,如此一来,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种文件处理方法流程图;
图2为本申请公开的一种具体的文件处理方法流程图;
图3为本申请公开的一种大文件的结构示意图;
图4为本申请公开的一种文件处理装置结构示意图;
图5为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
名称节点作为分布式文件系统的管理者保存着所有数据的元数据,这些元数据存在于内存中,并且每一条元数据占用了150byte的容量。由于一台服务器的内存是固定,因此元数据越多,则对内存的压力就越大,如果分布式文件系统去处理海量小文件时就会对名称节点的内存造成很大压力。
为此,本申请实施例提出一种文件处理方案,能够减少名称节点内存的使用以减轻其内存压力。
本申请实施例公开了一种文件处理方法,参见图1所示,该方法包括:
步骤S11:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件。
本实施例中,在基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件之前,首先要通过客户端开启小文件聚合属性设置,具体的,通过客户端启动小文件聚合属性开关,并从目标文件夹中确定出若干个小文件,然后确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件。
步骤S12:向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点。
本实施例中,向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点,所述数据节点负责管理用户的文件数据块,用于存储实际数据文件block(数据块)和校验和(checksum),处理客户端发送的读写操作,定期发送心跳和块报告。
步骤S13:基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
本实施例中,能够根据聚合后大文件的属性参数进行文件的读取,具体的,基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
可见,本申请提出了一种文件处理方法,包括:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。由此可见,本申请将若干个小文件聚合为大文件,然后再将大文件写入相应的数据节点,并且能够根据聚合后大文件的属性参数进行文件的读取,如此一来,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。
本申请实施例公开了一种具体的文件处理方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2所示,具体包括:
步骤S21:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件。
本实施例中,根据小文件场景的不同(小文件的文件大小的不同),还能够基于预设的聚合属性参数以及若干个待聚合小文件的文件大小,将所述待聚合小文件聚合为第一大文件或第二大文件;其中,所述第一大文件的文件大小为预设的文件大小,所述第二文件的文件大小大于所述预设的文件大小,示例性的,所述预设的文件大小可以是128M。
步骤S22:向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。
在一种具体的实施方式中,当小文件适合聚合为128M的大文件时,通过客户端向分布式文件系统中的名称节点发送文件写入请求,以便所述名称节点检查聚合后大文件是否存在,若存在,则返回允许上传的结果,然后通过客户端向数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。例如,名称节点返回3个数据节点,分别是:数据节点1、数据节点2、数据节点3。客户端收到上述3个节点的节点信息后,向数据节点1发起数据上传请求,数据节点1收到请求后会调用数据节点2,然后数据节点2调用数据节点3,数据节点1、2、3应答完成后,客户端开始向数据节点1上传相应文件,数据节点1收到请求后会传给数据节点2,然后数据节点2传给数据节点3。
在另一种具体的实施方式中,当小文件适合聚合为大于128M的大文件时,则通过客户端对所述大文件进行切分,得到若干个文件大小为128M的子文件,并通过客户端向分布式文件系统中的名称节点发送文件写入请求,以便所述名称节点检查聚合后大文件是否存在,若存在,则返回允许上传的结果,然后通过客户端向数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述子文件写入至相应的数据节点,并重复执行所述将所述子文件写入至相应的数据节点的步骤至聚合后大文件全部上传完成。
步骤S23:基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置。
本实施例中,所述聚合属性参数包括所述小文件所属的大文件的文件标识以及所述小文件在所述所属的大文件中的聚合顺序。如此一来,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:按照所述小文件在所述所属的大文件中的聚合顺序,将具有相同所述文件标识的所述小文件聚合为同一个所述大文件,每个大文件包括所述文件标识、预留空间以及基于聚合顺序排列的各个小文件的文件内容,参见图3所示。
步骤S24:当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。
本实施例中,在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。如此一来,本申请能够根据聚合后大文件的属性参数进行文件的读取。进一步的,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。
可见,本申请提出一种文件处理方法,包括:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点;基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置;当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地,由此可见,本申请将若干个小文件聚合为大文件,然后再将大文件写入相应的数据节点,并且能够根据聚合后大文件的属性参数进行文件的读取,如此一来,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。
相应的,本申请实施例还公开了一种文件处理装置,参见图4所示,该装置包括:
聚合模块11,用于基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
文件写入模块12,用于向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
文件读取模块13,用于基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本申请提出了一种文件处理方法,包括:基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。由此可见,本申请将若干个小文件聚合为大文件,然后再将大文件写入相应的数据节点,并且能够根据聚合后大文件的属性参数进行文件的读取,如此一来,使得分布式文件系统中的名称节点无需对每个小文件的元数据信息进行保存,只需要对聚合后大文件的属性参数进行保存,减少了内存使用。
在一些具体实施例中,所述聚合模块11之前,进一步还可以包括:
聚合属性启动单元,用于启动小文件聚合属性开关;
待聚合小文件确定单元,用于从目标文件夹中确定出若干个小文件,并确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件。
在一些具体实施例中,所述待聚合小文件确定单元,具体可以包括:
文件标识以及聚合顺序确定单元,用于确定所述小文件所属的大文件的文件标识以及所述小文件在所述所属的大文件中的聚合顺序,得到所述若干个待聚合小文件;
相应的,所述聚合模块11,具体可以包括:
聚合单元,用于按照所述小文件在所述所属的大文件中的聚合顺序,将具有相同所述文件标识的所述小文件聚合为同一个所述大文件。
在一些具体实施例中,所述文件写入模块12,具体可以包括:
文件写入单元,用于在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。
在一些具体实施例中,所述文件读取模块13,具体可以包括:
小文件确定单元,用于基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置;
相应的,所述文件读取模块13,具体可以包括:
文件读取单元,用于当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。
在一些具体实施例中,所述聚合模块11,具体可以包括:
基于文件大小的聚合单元,用于基于预设的聚合属性参数以及若干个待聚合小文件的文件大小,将所述待聚合小文件聚合为第一大文件或第二大文件;其中,所述第一大文件的文件大小为预设的文件大小,所述第二文件的文件大小大于所述预设的文件大小。
在一些具体实施例中,所述文件写入模块12,具体可以包括:
如果所述大文件为所述第二大文件,则对所述大文件进行切分,得到若干个文件大小为所述预设的文件大小的子文件,并根据所述数据节点信息将所述子文件分别写入至相应的数据节点。
进一步的,本申请实施例还提供了一种电子设备。图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图5为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、显示屏23、输入输出接口24、通信接口25、电源26、和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现以下步骤:
基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,还可以进一步包括以下步骤:
启动小文件聚合属性开关;
从目标文件夹中确定出若干个小文件,并确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
确定所述小文件所属的大文件的文件标识以及所述小文件在所述所属的大文件中的聚合顺序,得到所述若干个待聚合小文件;
相应的,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:
按照所述小文件在所述所属的大文件中的聚合顺序,将具有相同所述文件标识的所述小文件聚合为同一个所述大文件。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置;
相应的,所述在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地,包括:
当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
基于预设的聚合属性参数以及若干个待聚合小文件的文件大小,将所述待聚合小文件聚合为第一大文件或第二大文件;其中,所述第一大文件的文件大小为预设的文件大小,所述第二文件的文件大小大于所述预设的文件大小。
在一些具体实施方式中,所述处理器通过执行所述存储器中保存的计算机程序,具体可以实现以下步骤:
如果所述大文件为所述第二大文件,则对所述大文件进行切分,得到若干个文件大小为所述预设的文件大小的子文件,并根据所述数据节点信息将所述子文件分别写入至相应的数据节点。
本实施例中,电源26用于为电子设备20上的各硬件设备提供工作电压;通信接口25能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口24,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括计算机程序221,存储方式可以是短暂存储或者永久存储。其中,计算机程序221除了包括能够用于完成前述任一实施例公开的由电子设备20执行的文件处理方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的文件处理方法。
关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者处理与另一个实体或处理区分开来,而不一定要求或者暗示这些实体或处理之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种文件处理方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种文件处理方法,其特征在于,包括:
基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
2.根据权利要求1所述的文件处理方法,其特征在于,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件之前,还包括:
启动小文件聚合属性开关;
从目标文件夹中确定出若干个小文件,并确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件。
3.根据权利要求2所述的文件处理方法,其特征在于,所述确定所述小文件的所述聚合属性参数,得到所述若干个待聚合小文件,包括:
确定所述小文件所属的大文件的文件标识以及所述小文件在所述所属的大文件中的聚合顺序,得到所述若干个待聚合小文件;
相应的,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:
按照所述小文件在所述所属的大文件中的聚合顺序,将具有相同所述文件标识的所述小文件聚合为同一个所述大文件。
4.根据权利要求1所述的文件处理方法,其特征在于,所述在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点,包括:
在接收到所述名称节点返回的允许上传的指令后,向所述数据节点发送所述文件上传请求,并通过所述名称节点接收所述数据节点基于允许上传的指令确定的数据节点信息,然后根据所述数据节点信息将所述大文件写入至相应的数据节点。
5.根据权利要求3所述的文件处理方法,其特征在于,所述基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,包括:
基于待读取的目标小文件所属的大文件的文件标识以及所述待读取的目标小文件在所述所属的大文件中的聚合顺序,向所述名称节点发送文件读取请求,以便所述名称节点基于所述文件标识判断所述待读取的目标小文件所属的大文件是否存在和所在的数据节点,以及基于所述聚合顺序查询所述待读取的目标小文件在所述所属的大文件中的位置;
相应的,所述在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地,包括:
当所述待读取的目标小文件所属的大文件存在,则在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,根据所述数据节点信息向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求、所述待读取的目标小文件所属的大文件所在的数据节点,以及所述待读取的目标小文件在所述所属的大文件中的位置返回的所述目标小文件后,将所述目标小文件保存至本地。
6.根据权利要求1至5任一项所述的文件处理方法,其特征在于,所述基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件,包括:
基于预设的聚合属性参数以及若干个待聚合小文件的文件大小,将所述待聚合小文件聚合为第一大文件或第二大文件;其中,所述第一大文件的文件大小为预设的文件大小,所述第二文件的文件大小大于所述预设的文件大小。
7.根据权利要求6所述的文件处理方法,其特征在于,所述根据所述数据节点信息将所述大文件写入至相应的数据节点,包括:
如果所述大文件为所述第二大文件,则对所述大文件进行切分,得到若干个文件大小为所述预设的文件大小的子文件,并根据所述数据节点信息将所述子文件分别写入至相应的数据节点。
8.一种文件处理装置,其特征在于,包括:
聚合模块,用于基于预设的聚合属性参数将若干个待聚合小文件聚合为大文件;
文件写入模块,用于向分布式文件系统中的名称节点发送文件写入请求,并在接收到所述名称节点基于允许上传的指令返回的数据节点信息后,根据所述数据节点信息将所述大文件写入至相应的数据节点;
文件读取模块,用于基于待读取的目标小文件的所述聚合属性参数向所述名称节点发送文件读取请求,并在接收到所述名称节点基于允许读取的指令返回的数据节点信息后,向相应的数据节点发送所述文件读取请求,以便在接收到所述数据节点基于所述文件读取请求返回的所述目标小文件后,将所述目标小文件保存至本地。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的文件处理方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的文件处理方法。
CN202210727055.7A 2022-06-24 2022-06-24 一种文件处理方法、装置、设备及介质 Pending CN115185903A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210727055.7A CN115185903A (zh) 2022-06-24 2022-06-24 一种文件处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210727055.7A CN115185903A (zh) 2022-06-24 2022-06-24 一种文件处理方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN115185903A true CN115185903A (zh) 2022-10-14

Family

ID=83515694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210727055.7A Pending CN115185903A (zh) 2022-06-24 2022-06-24 一种文件处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN115185903A (zh)

Similar Documents

Publication Publication Date Title
US10747724B2 (en) System and method of using data blocks to optimize file storage
CN111200657B (zh) 一种管理资源状态信息的方法和资源下载系统
CN104731516A (zh) 一种存取文件的方法、装置及分布式存储系统
US20170031948A1 (en) File synchronization method, server, and terminal
CN109033360B (zh) 一种数据查询方法、装置、服务器及存储介质
CN105095300A (zh) 一种数据库备份方法及系统
US20130325932A1 (en) Electronic device and method for storing distributed documents
US20190155798A1 (en) Cache management
CN111400334B (zh) 数据处理方法、装置、存储介质及电子装置
CN112632375B (zh) 会话信息处理方法、服务器及存储介质
JP2022550401A (ja) データのアップロード方法、システム、装置及び電子機器
CN105227672A (zh) 数据存储及访问的方法和系统
CN112748877A (zh) 一种文件的整合上传方法及装置、文件的下载方法及装置
CN115426374A (zh) 一种服务质量控制方法、装置、设备及存储介质
CN113590027B (zh) 数据存储方法、数据获取方法、系统、设备和介质
US10108631B2 (en) System and method of removing unused regions of a data file
CN104063377A (zh) 信息处理方法和使用其的电子设备
CN110347656B (zh) 文件存储系统中请求的管理方法和装置
CN115185903A (zh) 一种文件处理方法、装置、设备及介质
CN104346101A (zh) 存储空间动态分配系统及方法
CN117407361B (zh) 数据管理方法、装置、系统、服务器及存储介质
CN106407320B (zh) 文件处理方法、装置及系统
CN114385081B (zh) 针对kafka集群的磁盘保护方法及相关设备
CN114327273A (zh) 数据存储方法和装置、存储介质及电子设备
CN116974482A (zh) Ess弹性存储系统、方法及装置

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