CN112988696A - 文件整理方法、装置及相关设备 - Google Patents
文件整理方法、装置及相关设备 Download PDFInfo
- Publication number
- CN112988696A CN112988696A CN201911311295.3A CN201911311295A CN112988696A CN 112988696 A CN112988696 A CN 112988696A CN 201911311295 A CN201911311295 A CN 201911311295A CN 112988696 A CN112988696 A CN 112988696A
- Authority
- CN
- China
- Prior art keywords
- file
- processed
- files
- node
- partition
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
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)
- Multi Processors (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提出一种文件整理方法及相关设备,涉及分布式文件***领域。通过获取多个待处理文件的块数据分布情况,并根据每个块数据分布情况分别确定每个待处理文件的节点关联顺序,根据多个待处理文件的节点关联顺序将多个待处理文件拆分为多个分区,基于每个分区包括的待处理文件的文件路径生成合并任务,将每个合并任务分发至与每个分区对应的存储节点。由于按照每个文件的块数据分布情况进行分区,并由每个分区对应的存储节点对该分区内的文件进行合并,以保证在合并过程中,尽量减少从其他节点读取文件块数据,从而能有效减少数据合并时的网络I/O开销;同时,由于可以在多个存储节点上分别进行合并任务,有效提升了合并速度和性能。
Description
技术领域
本发明涉及分布式文件***领域,具体而言,涉及一种文件整理方法、装置及相关设备。
背景技术
Parquet是一种高压缩比的列式数据存储格式,通常基于分布式文件***(HadoopDistributed File System,HDFS)存储海量静态数据,而使用Spark分布式计算框架可以对Parquet文件进行查询和数据挖掘。然而,Parquet文件是静态不可更新的,当需要添加新的数据时,就需要生成新的Parquet文件,从而随着数据量的增加,Parquet文件也就越来越多,这会影响HDFS的读写性能以及Spark等计算框架的性能。因此,需要对这些Parquet文件进行合并和整理,以保证文件大小数量合理。
现有技术中,可通过Spark直接对多个Parquet文件数据进行逐条读取,然后再写入到新的文件中。然而,Parquet文件在HDFS上是分块存储的,一个Parquet文件可能会被分为多个块,存储在不同的集群节点上;同时,一个文件块也有多个备份,文件合并时,如果不考虑数据本地性(即数据与计算最好在同一个节点),会导致合并过程中更多的数据在集群节点间拷贝,浪费网络IO性能。此外,在进行数据合并时,会将所有数据发送到一个节点以生成新的文件,这不仅会浪费网络IO性能,还存在并行度较低的问题。
发明内容
有鉴于此,本发明的目的在于提供一种文件整理方法、装置及相关设备,以解决上述问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,实施例提供一种文件整理方法,应用于分布式存储***的管理节点,所述分布式存储***还包括多个存储节点,所述管理节点与多个所述存储节点通信连接,所述方法包括:
获取多个待处理文件的块数据分布情况,每个所述块数据分布情况用于反映一个所述待处理文件包括的多个块数据所在的存储节点;
根据每个所述块数据分布情况分别确定每个所述待处理文件的节点关联顺序,其中,每个所述节点关联顺序用于反映一个所述待处理文件与每个所述存储节点的关联程度;
根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区,以使每个所述分区与一个所述存储节点对应;
基于每个所述分区包括的待处理文件的文件路径生成合并任务;
将每个所述合并任务分发至与每个所述分区对应的所述存储节点,以使每个所述存储节点对与所述存储节点对应的所述分区包括的待处理文件进行合并操作。
第二方面,实施例提供一种文件整理装置,应用于分布式存储***的管理节点,所述分布式存储***还包括多个存储节点,所述管理节点与多个所述存储节点通信连接,所述装置包括:
分布情况确定模块,用于获取多个待处理文件的块数据分布情况,每个所述块数据分布情况用于反映一个所述待处理文件包括的多个块数据所在的存储节点;
关联顺序确定模块,用于根据每个所述块数据分布情况分别确定每个所述待处理文件的节点关联顺序,其中,每个所述节点关联顺序用于反映一个所述待处理文件与每个所述存储节点的关联程度;
分组模块,用于根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区,以使每个所述分区与一个所述存储节点对应;
任务生成模块,用于基于每个所述分区包括的待处理文件的文件路径生成合并任务;
任务发布模块,用于将每个所述合并任务分发至与每个所述分区对应的所述存储节点,以使每个所述存储节点对与所述存储节点对应的所述分区包括的待处理文件进行合并操作。
第三方面,实施例提供一种管理节点,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式任一所述的文件整理方法。
第四方面,实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的文件整理方法。
本发明实施例提供的文件整理方法、装置、存储节点和计算机可读存储介质,通过获取多个待处理文件的块数据分布情况,并根据每个块数据分布情况分别确定每个待处理文件的节点关联顺序,然后根据多个待处理文件的节点关联顺序将多个待处理文件拆分为多个分区,基于每个分区包括的待处理文件的文件路径生成合并任务,最后将每个合并任务分发至与每个分区对应的存储节点,以使每个存储节点对与存储节点对应的分区包括的待处理文件进行合并操作。由于按照每个文件的块数据分布情况进行分区,并由每个分区对应的存储节点对该分区内的文件进行合并,以保证在合并过程中,尽量减少从其他节点读取文件块数据,从而能有效减少数据合并时的网络I/O开销;同时,由于可以在多个存储节点上分别进行合并任务,有效提升了合并速度和性能。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的分布式存储***的分布示意图。
图2示出了本发明实施例提供的管理节点的方框示意图。
图3示出了本发明实施例提供的文件整理方法的流程图。
图4示出了图3中S305的具体流程图。
图5示出了本发明实施例提供的文件整理装置的功能模块图。
图标:100-分布式存储***;110-管理节点;112-存储器;114-处理器;
116-通信模块;120-存储节点;200-文件整理装置;210-读取模块;220-筛选模块;230-分布情况确定模块;240-关联顺序确定模块;250-分组模块;260-任务生成模块;270-任务发布模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
请参照图1,为一种分布式存储***100的分布示意图。该分布式存储***100包括管理节点110(NameNode)及多个存储节点120(DataNode),管理节点110与多个存储节点120通信连接。
存储节点120用于存储各个文件的块数据。
管理节点110用于记录每个文件的文件信息以及每个文件中各个块所在的数据节点信息。
请参照图2,是管理节点110的方框示意图。所述管理节点110包括存储器112、处理器114及通信模块116。所述存储器112、处理器114以及通信模块116各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器112用于存储程序或者数据。所述存储器112可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器114用于读/写存储器112中存储的数据或程序,并执行相应地功能。
通信模块116用于通过所述网络建立所述管理节点110与其它通信终端之间的通信连接,并用于通过所述网络收发数据。
应当理解的是,图2所示的结构仅为管理节点110的结构示意图,所述管理节点110还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
第一实施例
本发明提供了一种文件整理方法,应用于图1中的管理节点110,用于提高文件合并这一过程的效率以及减少文件合并过程中的网络I/O开销。请参阅图3,为本发明提供的文件整理方法的流程图。该文件整理方法包括:
S301,遍历预先确定的待合并目录。
其中,待合并目录可以由用户选定。此外,该待合并目录可以为一个也可以为多个,其可以根据用户的需求具体设置。
待合并目录包括多个待合并文件的文件信息。该文件信息包括但不仅限于待合并文件的文件大小、文件类型、文件状态信息、文件路径以及待处理文件的块数据分布情况。
可以理解地,文件大小即为该文件所占用的存储空间,例如可以是16kb。
文件状态信息则可确定该文件是否被损坏。在一种可选的实施方式中,若该文件状态信息表征该待处理文件的文件头及文件尾部均有魔数,且文件尾部的Footer可以被正常读取,则管理节点110确定该文件的状态为正常状态;若该文件状态信息表征该待处理文件的文件头和文件尾部的任意之一没有魔数或者文件尾部的Footer不能被正常读取,则管理节点110确定该文件的状态为损坏状态。
该块数据分布情况用于反映一个待处理文件包括的多个块数据所在的存储节点120。例如,一个待处理文件包括2个块数据,且分布式存储***100包括A、B、C三个节点;该数据分布情况可表征其中一个块数据存储于A、B两个节点,另一个块数据则存储于B、C节点。
S302,根据每个待合并文件的文件信息从多个待合并文件中筛选出预设数量个满足预设条件的待合并文件作为待处理文件。
在一种可选的实施方式中,当待合并文件的文件体积小于预设定的体积阈值和/或待合并文件的文件类型与预设定的类型符合和/或根据文件状态信息确定待合并文件处于正常状态时,确定待合并文件满足预设条件。
其中,预设定的体积阈值即为用户所期望地合并后的新文件的体积大小。因此对于那些文件体积大于或等于预设定的体积阈值的待合并文件,在无需合并的情况下,其体积就已经满足了用户的需求,因此将其过滤,仅仅保留文件体积小于预设定的体积阈值的待合并文件。
同时,通常情况下是对同一类型的文件进行合并,因此过滤与预设定的类型不符合的待合并文件,保留与预设定的类型符合的文件,可以有效提高合并的效率。
此外,若文件被损坏,则会造成数据丢失或者无法读取文件,因此预先过滤损坏的待合并文件,并保留未被损坏的文件,也能有效提高后续合并过程中的效率,避免在合并过程中报错。
需要说明的是,在本发明中,可以在当满足待合并文件的文件体积小于预设定的体积阈值、待合并文件的文件类型与预设定的类型符及根据文件状态信息确定待合并文件处于正常状态中的任意一个或任意两个条件时,确定待合并文件满足预设条件。也可以是在同时满足待合并文件的文件体积小于预设定的体积阈值、待合并文件的文件类型与预设定的类型符及根据文件状态信息确定待合并文件处于正常状态中三个条件时,确定待合并文件满足预设条件;在此不做具体显示,其可以根据应用环境及需求进行适应性修改。
另外,S301及S302主要用于从多个待合并文件中筛选出预设数量个满足预设条件的待合并文件作为待处理文件,可以避免一次性合并大量的数据导致的合并效率缓慢的问题。但需要说明的是,在其他实施方式中,本发明提供的文件整理方法也可以不包含S301及S302,而是可以直接将待合并目录的所有待合并文件直接作为待处理文件,其不会对合并操作过程中的I/O开销造成影响。
需要说明的是,该预设数量可以根据用户的实际需求进行设置。
S303,获取多个待处理文件的块数据分布情况。
其中,每个块数据分布情况用于反映一个待处理文件包括的多个块数据所在的存储节点120,可以理解地,可以直接通过每个待处理文件的文件信息中获取。
S304,根据每个块数据分布情况分别确定每个待处理文件的节点关联顺序。
其中,每个节点关联顺序用于反映一个待处理文件与每个存储节点120的关联程度。需要说明的是,若待处理文件在一存储节点120上分布的块数据越多,则待处理文件与该存储节点120的关联程度越高。
例如,一个待处理文件包括3个块数据,且分布式存储***100包括A、B、C、D四个存储节点120;该数据分布情况可表征其中一个块数据存储于A、B两个节点,另一个块数据存储于B、C节点,最后一个块数据存储于B、C、D四个节点。也即,在存储节点A上分布有1个块数据,在存储节点B上分布有3个块数据,在存储节点C上分布有2个块数据,在存储节点D上分布有1个块数据。从而该节点关联顺序可以为[B,C,{A,D}],其表示待处理文件与存储节点B的关联程度排第一,待处理文件与存储节点C的关联程度排第二,待处理文件与存储节点A、D的关联程度并列第三(也即,存储节点A、D之间并无顺序)。
S305,根据多个待处理文件的节点关联顺序将多个待处理文件拆分为多个分区,以使每个分区与一个存储节点120对应。
请参阅图4,为S305的具体流程图。该S305包括:
S3051,根据每个待处理文件的节点关联顺序确定每个待处理文件是否具备关联节点。
在一种可选的实施方式中,若多个待处理文件中的目标文件的节点关联顺序表征目标文件与每个存储节点120的关联程度相同,则确定目标文件不具备关联节点。若多个待处理文件中的目标文件的节点关联顺序表征存在至少一个存储节点120与目标文件的关联程度,与其他存储节点120与目标文件的关联程度不同,则确定目标文件具备关联节点,并将与目标文件关联程度最高的存储节点120确定为目标文件的关联节点。
例如,目标文件的节点关联顺序为节[B,C,{A,D}],则目标文件与存储节点B的关联程度最高,将B节点确定为目标文件的关联节点;又例如目标文件的节点关联顺序为节[{A,B,C,D}],这表征目标文件与存储节点A、存储节点B、存储节点C以及存储节点D的关联程度相同,则该目标文件则不存在关联节点。
S3052,根据关联节点将具备关联节点的待处理文件拆分为多个分区。
其中,每个分区内包括的待处理文件的关联节点相同。也即,将具有相同关联节点的待处理文件划分至一个分区。因此,通常情况下,分布式存储***100包括几个存储节点120,则会对应有几个分区。
S3053,实时获取每个分区的文件总体积。
S3054,依次将每个不具备关联节点的待处理文件分配至文件总体积最小的分区。
对于不具备关联节点的待处理文件,在任何一个存储节点120上进行合并都不会影响合并过程中的网络I/O消耗,因此在一种可选的实施方式中,直接将其分配至文件总体积最小的分区,以均衡每个分区的文件总体积。
而在另一种可选的实施方式中,对于不具备关联节点的待处理文件,也可以随机分配其所属的分区,在此不做具体限制。
在一种可选的实施方式中,可能会存在一个分区内包括的待处理文件较多的情况,若直接对该分区的待处理文件进行合并处理,可能会造成合并得到的新文件体积较大,或是由于合并过程中数据太多影响效率。因此,对于已经完成分区后的待处理文件,还可以对其进行分区操作。也即,该S305还可以包括:
将每个分区内的待处理文件按照预设定的体积阈值再次进行分区操作。其中,再次进行分区操作后的每个分区的文件总体积大于或等于体积阈值,且去除每个分区内的任意一个待处理文件后的文件总体积小于体积阈值。
通过对每个分区内的待处理文件再次进行分区操作,可以使得再次分区操作后的每个分区包括的待处理文件的总体积较为接近,有利于提高后续合并过程中的性能。
S306,基于每个分区包括的待处理文件的文件路径生成合并任务。
S307,将每个合并任务分发至与每个分区对应的存储节点120,以使每个存储节点120对与存储节点120对应的分区包括的待处理文件进行合并操作。
可以理解地,每个分区对应的存储节点120,即为该分区包括的待处理文件的关联节点。也即,将每个合并任务分发至该分区的关联节点,由关联节点执行该合并任务。
从而,每个存储节点120执行合并任务的过程中,是将与自身关联程度较高的多个待处理文件合并成为一个新的文件,能够减少从其他存储节点120获取数据的次数,从而能有效减少数据合并时的网络I/O开销。同时,由于分布式存储***100中,每个存储节点120上对具备对应的Spark Executor,从而可以实现多个存储节点120同时执行合并任务,有效提升了合并速度和性能。
为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种文件整理装置200的实现方式,可选地,该文件整理装置200可以采用上述图2所示的管理节点110的器件结构。进一步地,请参阅图5,图5为本发明实施例提供的一种文件整理装置200的功能模块图。需要说明的是,本实施例所提供的文件整理装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该文件整理装置200包括:读取模块210、筛选模块220、分布情况确定模块230、关联顺序确定模块240、分组模块250、任务生成模块260以及任务发布模块270。
其中,读取模块210用于遍历预先确定的待合并目录。
可以理解地,在一种可选的实施方式中,该读取模块210可用于执行S301。
筛选模块220用于根据每个待合并文件的文件信息从多个待合并文件中筛选出预设数量个满足预设条件的待合并文件作为待处理文件。
可以理解地,在一种可选的实施方式中,该筛选模块220可用于执行S302。
分布情况确定模块230用于获取多个待处理文件的块数据分布情况。
可以理解地,在一种可选的实施方式中,该分布情况确定模块230可用于执行S303。
关联顺序确定模块240用于根据每个块数据分布情况分别确定每个待处理文件的节点关联顺序。
可以理解地,在一种可选的实施方式中,该关联顺序确定模块240可用于执行S304。
分组模块250用于根据多个待处理文件的节点关联顺序将多个待处理文件拆分为多个分区,以使每个分区与一个存储节点120对应。
其中,分组模块250用于根据每个待处理文件的节点关联顺序确定每个待处理文件是否具备关联节点,并根据关联节点将具备关联节点的待处理文件拆分为多个分区。
分组模块250还用于实时获取每个分区的文件总体积,并依次将每个不具备关联节点的待处理文件分配至文件总体积最小的分区。
可以理解地,在一种可选的实施方式中,该分组模块250可用于执行S305、S3051、S3052、S3053以及S3054。
任务生成模块260用于基于每个分区包括的待处理文件的文件路径生成合并任务。
可以理解地,在一种可选的实施方式中,该任务生成模块260可用于执行S306。
任务发布模块270用于将每个合并任务分发至与每个分区对应的存储节点120,以使每个存储节点120对与存储节点120对应的分区包括的待处理文件进行合并操作。
可以理解地,在一种可选的实施方式中,该任务生成模块260可用于执行S307。
可选地,上述模块可以软件或固件(Firmware)的形式存储于图2所示的存储器112中或固化于该管理节点110的操作***(Operating System,OS)中,并可由图2中的处理器114执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器112中。
综上所述,本发明实施例提供的文件整理方法、装置、存储节点和计算机可读存储介质,通过获取多个待处理文件的块数据分布情况,并根据每个块数据分布情况分别确定每个待处理文件的节点关联顺序,然后根据多个待处理文件的节点关联顺序将多个待处理文件拆分为多个分区,基于每个分区包括的待处理文件的文件路径生成合并任务,最后将每个合并任务分发至与每个分区对应的存储节点,以使每个存储节点对与存储节点对应的分区包括的待处理文件进行合并操作。由于按照每个文件的块数据分布情况进行分区,并由每个分区对应的存储节点对该分区内的文件进行合并,以保证在合并过程中,尽量减少从其他节点读取文件块数据,从而能有效减少数据合并时的网络I/O开销;同时,由于可以在多个存储节点上分别进行合并任务,有效提升了合并速度和性能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种文件整理方法,其特征在于,应用于分布式存储***的管理节点,所述分布式存储***还包括多个存储节点,所述管理节点与多个所述存储节点通信连接,所述方法包括:
获取多个待处理文件的块数据分布情况,每个所述块数据分布情况用于反映一个所述待处理文件包括的多个块数据所在的存储节点;
根据每个所述块数据分布情况分别确定每个所述待处理文件的节点关联顺序,其中,每个所述节点关联顺序用于反映一个所述待处理文件与每个所述存储节点的关联程度;
根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区,以使每个所述分区与一个所述存储节点对应;
基于每个所述分区包括的待处理文件的文件路径生成合并任务;
将每个所述合并任务分发至与每个所述分区对应的所述存储节点,以使每个所述存储节点对与所述存储节点对应的所述分区包括的待处理文件进行合并操作。
2.根据权利要求1所述的文件整理方法,其特征在于,所述根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区的步骤包括:
根据每个所述待处理文件的节点关联顺序确定每个所述待处理文件是否具备关联节点;
根据所述关联节点将具备关联节点的所述待处理文件拆分为多个分区,其中,每个所述分区内包括的待处理文件的关联节点相同。
3.根据权利要求2所述的文件整理方法,其特征在于,所述根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区的步骤还包括:
实时获取每个所述分区的文件总体积;
依次将每个不具备所述关联节点的所述待处理文件分配至所述文件总体积最小的所述分区。
4.根据权利要求2所述的文件整理方法,其特征在于,所述根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区的步骤还包括:
将每个所述分区内的待处理文件按照预设定的体积阈值再次进行分区操作,其中,再次进行分区操作后的每个所述分区的文件总体积大于或等于所述体积阈值,且去除每个所述分区内的任意一个所述待处理文件后的文件总体积小于所述体积阈值。
5.根据权利要求2-4中任意一项所述的文件整理方法,其特征在于,所述根据每个所述待处理文件的节点关联顺序确定每个所述待处理文件是否具备关联节点的步骤包括:
若多个所述待处理文件中的目标文件的节点关联顺序表征所述目标文件与每个所述存储节点的关联程度相同,则确定所述目标文件不具备关联节点;
若多个所述待处理文件中的目标文件的节点关联顺序表征所述目标文件与每个所述存储节点的关联程度不同,则确定所述目标文件具备关联节点,并将与所述目标文件关联程度最高的所述存储节点确定为所述目标文件的关联节点。
6.根据权利要求1-4中任意一项所述的文件整理方法,其特征在于,在所述获取多个待处理文件的块数据分布情况的步骤之前,所述方法还包括:
遍历预先确定的待合并目录,所述待合并目录包括多个待合并文件的文件信息;
根据每个所述待合并文件的文件信息从多个所述待合并文件中筛选出预设数量个满足预设条件的待合并文件作为所述待处理文件。
7.根据权利要求6所述的文件整理方法,其特征在于,所述文件信息包括所述待合并文件的文件大小、文件类型以及文件状态信息,当所述待合并文件的文件体积小于预设定的体积阈值和/或述待合并文件的文件类型与预设定的类型符合和/或根据所述文件状态信息确定所述待合并文件处于正常状态时,确定所述待合并文件满足预设条件。
8.一种文件整理装置,其特征在于,应用于分布式存储***的管理节点,所述分布式存储***还包括多个存储节点,所述管理节点与多个所述存储节点通信连接,所述装置包括:
分布情况确定模块,用于获取多个待处理文件的块数据分布情况,每个所述块数据分布情况用于反映一个所述待处理文件包括的多个块数据所在的存储节点;
关联顺序确定模块,用于根据每个所述块数据分布情况分别确定每个所述待处理文件的节点关联顺序,其中,每个所述节点关联顺序用于反映一个所述待处理文件与每个所述存储节点的关联程度;
分组模块,用于根据多个所述待处理文件的节点关联顺序将多个所述待处理文件拆分为多个分区,以使每个所述分区与一个所述存储节点对应;
任务生成模块,用于基于每个所述分区包括的待处理文件的文件路径生成合并任务;
任务发布模块,用于将每个所述合并任务分发至与每个所述分区对应的所述存储节点,以使每个所述存储节点对与所述存储节点对应的所述分区包括的待处理文件进行合并操作。
9.一种管理节点,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-7任一所述的文件整理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的文件整理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911311295.3A CN112988696B (zh) | 2019-12-18 | 2019-12-18 | 文件整理方法、装置及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911311295.3A CN112988696B (zh) | 2019-12-18 | 2019-12-18 | 文件整理方法、装置及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988696A true CN112988696A (zh) | 2021-06-18 |
CN112988696B CN112988696B (zh) | 2022-08-23 |
Family
ID=76344319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911311295.3A Active CN112988696B (zh) | 2019-12-18 | 2019-12-18 | 文件整理方法、装置及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988696B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612832A (zh) * | 2021-07-29 | 2021-11-05 | 上海哔哩哔哩科技有限公司 | 流式数据分发方法与*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185516A1 (en) * | 2011-01-17 | 2012-07-19 | International Business Machines Corporation | Computer data file merging based on file metadata |
CN104731921A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | Hadoop分布式文件***针对日志型小文件的存储和处理方法 |
CN106855861A (zh) * | 2015-12-09 | 2017-06-16 | 北京金山安全软件有限公司 | 一种文件合并方法、装置及电子设备 |
CN107533551A (zh) * | 2015-04-15 | 2018-01-02 | 华为技术有限公司 | 数据块级别的大数据统计 |
CN108874297A (zh) * | 2017-05-10 | 2018-11-23 | 华为技术有限公司 | 合并文件的方法、存储装置、存储设备和存储介质 |
CN110019168A (zh) * | 2017-12-26 | 2019-07-16 | 浙江宇视科技有限公司 | 文件合并方法和*** |
-
2019
- 2019-12-18 CN CN201911311295.3A patent/CN112988696B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120185516A1 (en) * | 2011-01-17 | 2012-07-19 | International Business Machines Corporation | Computer data file merging based on file metadata |
CN104731921A (zh) * | 2015-03-26 | 2015-06-24 | 江苏物联网研究发展中心 | Hadoop分布式文件***针对日志型小文件的存储和处理方法 |
CN107533551A (zh) * | 2015-04-15 | 2018-01-02 | 华为技术有限公司 | 数据块级别的大数据统计 |
CN106855861A (zh) * | 2015-12-09 | 2017-06-16 | 北京金山安全软件有限公司 | 一种文件合并方法、装置及电子设备 |
CN108874297A (zh) * | 2017-05-10 | 2018-11-23 | 华为技术有限公司 | 合并文件的方法、存储装置、存储设备和存储介质 |
CN110019168A (zh) * | 2017-12-26 | 2019-07-16 | 浙江宇视科技有限公司 | 文件合并方法和*** |
Non-Patent Citations (2)
Title |
---|
Y. ZHANG: "Improving the Efficiency of Storing for Small Files in HDFS", 《2012 INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND SERVICE SYSTEM》 * |
彭建烽: "基于Hadoop的海量小文件合并的研究与设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612832A (zh) * | 2021-07-29 | 2021-11-05 | 上海哔哩哔哩科技有限公司 | 流式数据分发方法与*** |
Also Published As
Publication number | Publication date |
---|---|
CN112988696B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107943421B (zh) | 一种基于分布式存储***的分区划分方法及装置 | |
Vora | Hadoop-HBase for large-scale data | |
CN108509462B (zh) | 一种同步活动事务表的方法及装置 | |
KR102301257B1 (ko) | 블록체인 부분 원장 | |
US8751547B2 (en) | Multiple file system and/or multi-host single instance store techniques | |
CN109298835B (zh) | 区块链的数据归档处理方法、装置、设备及存储介质 | |
Douglis et al. | Content-aware load balancing for distributed backup | |
WO2019001020A1 (zh) | 基于分布式***的存储空间整理方法、装置及*** | |
CN111159140B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US9984139B1 (en) | Publish session framework for datastore operation records | |
CN110147203B (zh) | 一种文件管理方法、装置、电子设备及存储介质 | |
CN107506466B (zh) | 一种小文件存储方法及*** | |
CN111930716A (zh) | 一种数据库扩容方法、装置及*** | |
JP6269140B2 (ja) | アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置 | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
US20190347165A1 (en) | Apparatus and method for recovering distributed file system | |
CN115114370B (zh) | 主从数据库的同步方法、装置、电子设备和存储介质 | |
CN115840731A (zh) | 文件处理方法、计算设备及计算机存储介质 | |
CN115756955A (zh) | 一种数据备份、数据恢复的方法、装置及计算机设备 | |
CN109634524B (zh) | 一种数据处理守护进程的数据分区配置方法、装置及设备 | |
CN112988696B (zh) | 文件整理方法、装置及相关设备 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储*** | |
CN114297196B (zh) | 元数据存储方法、装置、电子设备及存储介质 | |
CN105573862B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |