CN109947712A - 计算框架内自动合并文件的方法、系统、设备及介质 - Google Patents
计算框架内自动合并文件的方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN109947712A CN109947712A CN201910176617.1A CN201910176617A CN109947712A CN 109947712 A CN109947712 A CN 109947712A CN 201910176617 A CN201910176617 A CN 201910176617A CN 109947712 A CN109947712 A CN 109947712A
- Authority
- CN
- China
- Prior art keywords
- file
- combined
- merging
- directory
- under
- 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
Links
Abstract
本发明公开了一种计算框架内自动合并文件的方法、系统、设备及介质。其中,方法包括在计算框架内执行目标任务,目标任务包括目标目录、目标格式;自动获取目标任务的执行结果,执行结果包括对象目录,以及对象目录下的对象文件;判断对象目录下的对象文件是否是待合并文件;若是,则将待合并文件合并生成合并文件,合并文件以目标格式存储在目标目录下。本发明能够自动获取任务的执行结果,并根据执行结果来自动判断是否需要进行文件合并,以及如何进行合并,既将开发者从小文件处理中解放出来,又避免了开发者在小文件处理中出现的操作,实现了计算框架内小文件的自动合并。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种计算框架内自动合并文件的方法、系统、设备及介质。
背景技术
在HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)中,小文件是指大小明显小于HDFS中块(block)的大小的文件。在批处理任务中,小文件是一个比较棘手的问题,大量小文件不仅会造成存储集群元数据压力巨大,也会造成处理这些文件的后续作业浪费内存、CPU、带宽等资源或者执行低效。
目前采取的用于合并小文件的方式(例如,Hadoop Archive、Sequence file、CombineFileInputFormat)在于,开发者单独执行一个作业,该作业将所有落盘的数据重新读入进来,再以指定数量的文件写回去,从而达到合并的目的。该种方式给应当专注于业务逻辑与程序自身优化的开发者带来额外的工作量。此外,由于该种方式对开发者的依赖,也存在误操作从而导致数据不可用或者误操作了其他数据的可能。
发明内容
本发明实施例要解决的技术问题是为了克服现有技术中小文件的合并需要开发者另行执行作业的缺陷,提供一种计算框架内自动合并文件的方法、系统、设备及介质。
本发明实施例是通过下述技术方案来解决上述技术问题:
一种计算框架内自动合并文件的方法,其特点在于,所述方法包括:
在计算框架内执行目标任务,所述目标任务包括目标目录、目标格式;
自动获取所述目标任务的执行结果,所述执行结果包括对象目录,以及所述对象目录下的对象文件;
判断所述对象目录下的对象文件是否是待合并文件;
若是,则将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在所述目标目录下。
较佳地,所述判断所述对象目录下的对象文件是否是待合并文件的步骤包括:
获取所述对象目录下的对象文件的总个数和总大小;
根据所述总个数和总大小计算所述对象目录下的对象文件的平均大小;
判断所述平均大小是否大于第一阈值;
若是,则所述对象文件不是待合并文件;
若否,则所述对象目录是待合并目录,所述待合并目录下的对象文件是待合并文件。
较佳地,所述将所述待合并文件合并生成合并文件的步骤包括:
预设第二阈值,所述第二阈值表征合并文件的大小的最大值;
根据所述第二阈值和所述平均大小计算所述合并文件包括的所述待合并文件的最大个数;
根据所述最大个数和所述总个数计算所述合并文件的个数。
较佳地,所述将所述待合并文件合并生成合并文件的合并文件的步骤包括:
将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在中间目录下,其中,所述中间目录不同于所述目标目录;
判断所述合并文件是否包括所有待合并文件;
若是,则将所述合并文件转移至所述目标目录;
若否,则将所述对象目录下的待合并文件转移至所述目标目录,并删除所述合并文件。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特点在于,所述处理器执行所述计算机程序时实现上述任一种计算框架内自动合并文件的方法。
一种计算机可读存储介质,其上存储有计算机程序,其特点在于,所述计算机程序被处理器执行时实现上述任一种计算框架内自动合并文件的方法的步骤。
一种计算框架内自动合并文件的系统,其特点在于,所述系统包括:
执行模块,用于在计算框架内执行目标任务,所述目标任务包括目标目录、目标格式;
自动获取模块,用于自动获取所述目标任务的执行结果,所述执行结果包括对象目录,以及所述对象目录下的对象文件;
判断模块,用于判断所述对象目录下的对象文件是否是待合并文件;
若是,则调用合并模块;
所述合并模块用于将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在所述目标目录下。
较佳地,所述判断模块包括:
获取单元,用于获取所述对象目录下的对象文件的总个数和总大小;
第一计算单元,用于根据所述总个数和总大小计算所述对象目录下的对象文件的平均大小;
第一判断单元,用于判断所述平均大小是否大于第一阈值;
若是,则所述对象文件不是待合并文件;
若否,则所述对象目录是待合并目录,所述待合并目录下的对象文件是待合并文件。
较佳地,所述合并模块包括:
预设单元,用于预设第二阈值,所述第二阈值表征合并文件的大小的最大值;
第二计算单元,用于根据所述第二阈值和所述平均大小计算所述合并文件包括的所述待合并文件的最大个数;
第三计算单元,用于根据所述最大个数和所述总个数计算所述合并文件的个数。
较佳地,所述合并模块包括:
合并单元,用于将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在中间目录下,其中,所述中间目录不同于所述目标目录;
第二判断单元,用于判断所述合并文件是否包括所有待合并文件;
若是,则调用第一转移单元;若否,则调用第二转移单元;
所述第一转移单元用于将所述合并文件转移至所述目标目录;
所述第二转移单元用于将所述对象目录下的待合并文件转移至所述目标目录,并删除所述合并文件。
本发明实施例的积极进步效果在于:本发明实施例能够自动获取任务的执行结果,并根据执行结果来自动判断是否需要进行文件合并,以及如何进行合并,而无需开发者另起作业来确定待处理的小文件,并根据待处理的小文件具体设置并执行合并作业,既将开发者从小文件处理中解放出来,又避免了开发者在小文件处理中出现的操作,实现了计算框架内小文件的自动合并。
附图说明
图1为根据本发明实施例1的计算框架内自动合并文件的方法的流程图。
图2为根据本发明实施例2的电子设备的硬件结构示意图。
图3为根据本发明实施例4的计算框架内自动合并文件的系统的模块示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种计算框架内自动合并文件的方法,图1示出了本实施例的流程图。参照图1,本实施例的方法包括:
S101、在计算框架内执行目标任务。
在本实施例中,计算框架可以是MR(Map-Reduce,映射-归约,用于大规模数据集的并行运算的计算框架),也可以是Spark(基于内存的分布式计算框架),目标任务可以是向Hive(建立在Hadoop上的数据仓库基础构架)表中插入数据,也可以是将数据写入本地目录、分布式存储、云存储等。具体地,目标任务中包括存储目标任务执行结果的目标目录以及目标格式,其中,目标格式可以包括但不限于ORCFile(Optimized Row Columnar File,一种列式存储格式)、RCFile(Record Columnar File,另一种列式存储格式)、Parquet(另一种列式存储格式)、TextFile(一种行列式存储格式,包括LZO(Lempel-Ziv-Oberhumer,一种数据压缩算法))。
S102、自动获取目标任务的执行结果。
在本实施例中,以Spark为例,可以设置诸如spark.sql.hive.mergefiles的参数,当该参数值为false时,不自动合并文件;当该参数值为true时,自动合并文件。
具体地,在本实施例中,自动合并文件,可以首先自动获取目标任务在计算框架内的执行结果,该执行结果可以包括对象目录,该对象目录是相对于目标目录的中间目录,以及该对象目录下的多个以目标格式存储的对象文件,对象文件的总个数和总大小。
其中,当目标任务采用静态分区时,执行结果可以包括一个对象目录;当目标任务采用动态分区时,执行结果可以包括多个对象目录,以及每个对象目录下对象文件的总个数和总大小。
S103、判断对象目录下的对象文件是否是待合并文件;
若是,则转至步骤S104;若否,则转至步骤S105。
在本实施例中,为了进一步优化计算,以进行大批量处理,可以首先判断对象目录是否是待合并目录,则有,待合并目录下的对象文件是待合并文件,其中,目录下对象文件的平均大小小于第一阈值的对象目录是待合并目录,其中,第一阈值的取值可以根据具体应用来自定义设置。以Spark计算框架为例,可以设置诸如spark.sql.hive.merge.smallfile.boundary.size的参数作为第一阈值,来判断对象目录是否是待合并目录。
具体地,在本实施例中,令第一阈值为B,对象目录下对象文件的总个数为N,总大小为S,则该对象目录下对象文件的平均大小A=S/N,若平均大小A大于第一阈值B,则可以推断该对象目录不是待合并目录,该对象目录下的对象文件不是待合并文件;若平均大小A不大于第一阈值B,则可以推断该对象目录是待合并目录,其中,待合并目录下的对象文件是待合并文件。
S104、将待合并文件合并生成合并文件。
在本实施例中,可以在计算框架中设置对应于各种目标格式的多对RecordReader和MergeOperator,其中,RecordReader用于读取某一目标格式对象文件的内容,MergeOperator用于将RecordReader读取到的内容按照该目标格式写入合并文件。从而,在本实施例中,可以根据不同格式的对象文件,自动调用相应格式的读写工具将对象文件写入合并文件。
具体地,关于合并文件的大小,可以在计算框架中预设第二阈值来表征合并文件的大小的最大值,其中,第二阈值的取值可以根据具体应用来自定义设置。以Spark为例,可以设置诸如spark.sql.hive.merge.smallfile.target.size的参数作为第二阈值。在本实施例中,令第二阈值为T,则该合并文件所能包括的待合并文件的最大个数M=T/A(向下取整)。此外,接收待合并文件的合并文件的个数G=N/M(向上取整)。
例如,执行结果包括待合并目录10和待合并目录20,其中,待合并目录10包括100个待合并文件,待合并目录20包括130个待合并文件,合并文件所能包括的待合并文件的最大个数为40,则待合并目录10中的待合并文件需要3个合并文件,待合并目录20中的待合并文件需要4个合并文件。
在本实施例中,合并文件以目标格式存储在目标目录下,其中,在将合并文件存储至目标目录之前,还可以对合并文件进行校验。
具体地,首先将合并文件以目标格式存储在中间目录下,该中间目录不同于目标目录。
其次,判断合并文件中是否包括所有待合并文件,以判断在合并过程中是否发生机器异常、网络异常等造成的文件写入失败,具体地,可以比较从待合并目录中读取待合并文件的记录数量(record)以及向合并文件写入待合并文件的记录数量来判断合并文件中是否包括所有待合并文件。
最后,若合并文件包括所有待合并文件,则校验成功,直接将合并文件从中间目录移至目标目录;若合并文件未包括所有待合并文件,则校验失败,将待合并目录下的待合并文件转移至目标目录,并删除该合并文件,也即,直接从对象目录下将合并前的待合并文件直接移至目标目录,而不进行合并。
例如,待合并目录包括100个待合并文件,合并文件所能包括的待合并文件的最大个数为40,将40个待合并文件合并生成第一合并文件,将其他40个待合并文件合并生成第二合并文件,将其他20个待合并文件合并生成第三合并文件后,第一合并文件中包括38个待合并文件,第二合并文件包括40个待合并文件,第三合并文件中包括20个待合并文件,则将合并至第一合并文件之前的40个待合并文件直接移至目标目录,并将第二、第三合并文件移至目标目录。
S105、将对象目录下的对象文件存储在目标目录下。
在该步骤中,对象目录并非待合并目录,则直接将其下的对象文件存储在目标目录下。
在本实施例中,在计算框架内自动获取目标任务的执行结果,并根据执行结果来自动判断是否需要进行文件合并,以及如何进行合并,而无需开发者另起作业来确定待处理的小文件,并根据待处理的小文件具体设置并执行合并作业,实现了计算框架内小文件的自动合并。
实施例2
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1提供的计算框架内自动合并文件的方法。
图2示出了本实施例的硬件结构示意图,如图2所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的计算框架内自动合并文件的方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例3
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1提供的计算框架内自动合并文件的方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中的计算框架内自动合并文件的方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
实施例4
本实施例提供一种计算框架内自动合并文件的系统,图3示出了本实施例的模块示意图。参照图3,本实施例的系统包括:
执行模块1,用于在计算框架内执行目标任务。
在本实施例中,计算框架可以是MR(Map-Reduce,映射-归约,用于大规模数据集的并行运算的计算框架),也可以是Spark(基于内存的分布式计算框架),目标任务可以是向Hive(建立在Hadoop上的数据仓库基础构架)表中插入数据,也可以是将数据写入本地目录、分布式存储、云存储等。具体地,目标任务中包括存储目标任务执行结果的目标目录以及目标格式,其中,目标格式可以包括但不限于ORCFile(Optimized Row Columnar File,一种列式存储格式)、RCFile(Record Columnar File,另一种列式存储格式)、Parquet(另一种列式存储格式)、TextFile(一种行列式存储格式,包括LZO(Lempel-Ziv-Oberhumer,一种数据压缩算法))。
自动获取模块2,用于自动获取目标任务的执行结果。
在本实施例中,以Spark为例,可以设置诸如spark.sql.hive.mergefiles的参数,当该参数值为false时,不自动合并文件;当该参数值为true时,自动合并文件。
具体地,在本实施例中,自动合并文件,可以首先自动获取目标任务在计算框架内的执行结果,该执行结果可以包括对象目录,该对象目录是相对于目标目录的中间目录,以及该对象目录下的多个以目标格式存储的对象文件,对象文件的总个数和总大小。
其中,当目标任务采用静态分区时,执行结果可以包括一个对象目录;当目标任务采用动态分区时,执行结果可以包括多个对象目录,以及每个对象目录下对象文件的总个数和总大小。
判断模块3,用于判断对象目录下的对象文件是否是待合并文件;若是,则调用合并模块4。
在本实施例中,为了进一步优化计算,以进行大批量处理,可以首先判断对象目录是否是待合并目录,则有,待合并目录下的对象文件是待合并文件,其中,目录下对象文件的平均大小小于第一阈值的对象目录是待合并目录,其中,第一阈值的取值可以根据具体应用来自定义设置。以Spark计算框架为例,可以设置诸如spark.sql.hive.merge.smallfile.boundary.size的参数作为第一阈值,来判断对象目录是否是待合并目录。
参照图3,在本实施例中,判断模块3包括用获取单元31,用于获取对象目录下的对象文件的总个数和总大小;第一计算单元32,用于根据总个数和总大小计算对象目录下的对象文件的平均大小;第一判断单元33,用于判断平均大小是否大于第一阈值。
具体地,令第一阈值为B,获取单元31获取的对象目录下对象文件的总个数为N,总大小为S,第一计算单元32根据总个数N以及总大小S计算该对象目录下对象文件的平均大小A=S/N,若第一判断单元33判断平均大小A大于第一阈值B,则可以推断该对象目录不是待合并目录,该对象目录下的对象文件不是待合并文件,直接将其下的对象文件存储在目标目录下;若第一判断单元33判断平均大小A不大于第一阈值B,则可以推断该对象目录是待合并目录,其中,待合并目录下的所有对象文件均为待合并文件,调用合并模块4。
合并模块4,用于将待合并文件合并生成合并文件。
在本实施例中,可以在计算框架中设置对应于各种目标格式的多对RecordReader和MergeOperator,其中,RecordReader用于读取某一目标格式对象文件的内容,MergeOperator用于将RecordReader读取到的内容按照该目标格式写入合并文件。从而,在本实施例中,可以根据不同格式的对象文件,自动调用相应格式的读写工具将对象文件写入合并文件。
具体地,参照图3,合并模块4可以包括预设单元41、第二计算单元42、第三计算单元43。其中,预设单元41用于在计算框架中预设第二阈值来表征合并文件的大小的最大值,其中,第二阈值的取值可以根据具体应用来自定义设置。以Spark为例,可以设置如spark.sql.hive.merge.smallfile.target.size的参数作为第二阈值。在本实施例中,令第二阈值为T,第二计算单元42根据第二阈值T和平均大小A计算该合并文件所能包括的待合并文件的最大个数M=T/A(向下取整),第三计算单元43根据最大个数M和总个数N计算接收待合并文件的合并文件的个数G=N/M(向上取整)。
例如,执行结果包括待合并目录10和待合并目录20,其中,待合并目录10包括100个待合并文件,待合并目录20包括130个待合并文件,合并文件所能包括的待合并文件的最大个数为40,则待合并目录10中的待合并文件需要3个合并文件,待合并目录20中的待合并文件需要4个合并文件。
在本实施例中,合并文件以目标格式存储在目标目录下,其中,在将合并文件存储至目标目录之前,还可以对合并文件进行校验。参照图3,合并模块4还可以包括合并单元44、第二判断单元45、第一转移单元46、第二转移单元47。
具体地,合并单元44首先将待合并目录下的对象文件合并生成合并文件,其中,合并文件以目标格式存储在中间目录下,并且该中间目录不同于目标目录。
其次,第二判断单元45判断合并文件中是否包括所有待合并文件,以判断在合并过程中是否发生机器异常、网络异常等造成的文件写入失败,具体地,可以比较从待合并目录中读取待合并文件的记录数量(record)以及向合并文件写入待合并文件的记录数量来判断合并文件中是否包括所有待合并文件。
最后,若第二判断单元45判断合并文件包括所有待合并文件,则校验成功,调用第一转移单元46直接将合并文件从中间目录移至目标目录;若第二判断单元45判断合并文件未包括所有待合并文件,则校验失败,调用第二转移单元47将待合并目录下的待合并文件转移至目标目录,并删除该合并文件,也即,直接从对象目录下将合并前的待合并文件直接移至目标目录,而不进行合并。
例如,待合并目录包括100个待合并文件,合并文件所能包括的待合并文件的最大个数为40,将40个待合并文件合并生成第一合并文件,将其他40个待合并文件合并生成第二合并文件,将其他20个待合并文件合并生成第三合并文件后,第一合并文件中包括38个待合并文件,第二合并文件包括40个待合并文件,第三合并文件中包括20个待合并文件,则将合并至第一合并文件之前的40个待合并文件直接移至目标目录,并将第二、第三合并文件移至目标目录。
在本实施例中,在计算框架内自动获取目标任务的执行结果,并根据执行结果来自动判断是否需要进行文件合并,以及如何进行合并,而无需开发者另起作业来确定待处理的小文件,并根据待处理的小文件具体设置并执行合并作业,实现了计算框架内小文件的自动合并。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种计算框架内自动合并文件的方法,其特征在于,所述方法包括:
在计算框架内执行目标任务,所述目标任务包括目标目录、目标格式;
自动获取所述目标任务的执行结果,所述执行结果包括对象目录,以及所述对象目录下的对象文件;
判断所述对象目录下的对象文件是否是待合并文件;
若是,则将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在所述目标目录下。
2.如权利要求1所述的计算框架内自动合并文件的方法,其特征在于,所述判断所述对象目录下的对象文件是否是待合并文件的步骤包括:
获取所述对象目录下的对象文件的总个数和总大小;
根据所述总个数和总大小计算所述对象目录下的对象文件的平均大小;
判断所述平均大小是否大于第一阈值;
若是,则所述对象文件不是待合并文件;
若否,则所述对象目录是待合并目录,所述待合并目录下的对象文件是待合并文件。
3.如权利要求2所述的计算框架内自动合并文件的方法,其特征在于,所述将所述待合并文件合并生成合并文件的步骤包括:
预设第二阈值,所述第二阈值表征合并文件的大小的最大值;
根据所述第二阈值和所述平均大小计算所述合并文件包括的所述待合并文件的最大个数;
根据所述最大个数和所述总个数计算所述合并文件的个数。
4.如权利要求1所述的计算框架内自动合并文件的方法,其特征在于,所述将所述待合并文件合并生成合并文件的步骤包括:
将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在中间目录下,其中,所述中间目录不同于所述目标目录;
判断所述合并文件是否包括所有待合并文件;
若是,则将所述合并文件转移至所述目标目录;
若否,则将所述对象目录下的待合并文件转移至所述目标目录,并删除所述合并文件。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-4中任一项所述的计算框架内自动合并文件的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的计算框架内自动合并文件的方法的步骤。
7.一种计算框架内自动合并文件的系统,其特征在于,所述系统包括:
执行模块,用于在计算框架内执行目标任务,所述目标任务包括目标目录、目标格式;
自动获取模块,用于自动获取所述目标任务的执行结果,所述执行结果包括对象目录,以及所述对象目录下的对象文件;
判断模块,用于判断所述对象目录下的对象文件是否是待合并文件;
若是,则调用合并模块;
所述合并模块用于将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在所述目标目录下。
8.如权利要求7所述的计算框架内自动合并文件的系统,其特征在于,所述判断模块包括:
获取单元,用于获取所述对象目录下的对象文件的总个数和总大小;
第一计算单元,用于根据所述总个数和总大小计算所述对象目录下的对象文件的平均大小;
第一判断单元,用于判断所述平均大小是否大于第一阈值;
若是,则所述对象文件不是待合并文件;
若否,则所述对象目录是待合并目录,所述待合并目录下的对象文件是待合并文件。
9.如权利要求8所述的计算框架内自动合并文件的系统,其特征在于,所述合并模块包括:
预设单元,用于预设第二阈值,所述第二阈值表征合并文件的大小的最大值;
第二计算单元,用于根据所述第二阈值和所述平均大小计算所述合并文件包括的所述待合并文件的最大个数;
第三计算单元,用于根据所述最大个数和所述总个数计算所述合并文件的个数。
10.如权利要求7所述的计算框架内自动合并文件的系统,其特征在于,所述合并模块包括:
合并单元,用于将所述待合并文件合并生成合并文件,所述合并文件以所述目标格式存储在中间目录下,其中,所述中间目录不同于所述目标目录;
第二判断单元,用于判断所述合并文件是否包括所有待合并文件;
若是,则调用第一转移单元;若否,则调用第二转移单元;
所述第一转移单元用于将所述合并文件转移至所述目标目录;
所述第二转移单元用于将所述对象目录下的待合并文件转移至所述目标目录,并删除所述合并文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910176617.1A CN109947712A (zh) | 2019-03-08 | 2019-03-08 | 计算框架内自动合并文件的方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910176617.1A CN109947712A (zh) | 2019-03-08 | 2019-03-08 | 计算框架内自动合并文件的方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109947712A true CN109947712A (zh) | 2019-06-28 |
Family
ID=67008561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910176617.1A Pending CN109947712A (zh) | 2019-03-08 | 2019-03-08 | 计算框架内自动合并文件的方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947712A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231293A (zh) * | 2020-09-14 | 2021-01-15 | 杭州数梦工场科技有限公司 | 文件读取方法、装置、电子设备和存储介质 |
CN112965939A (zh) * | 2021-02-07 | 2021-06-15 | 中国工商银行股份有限公司 | 一种文件合并方法、装置和设备 |
CN113873176A (zh) * | 2021-10-27 | 2021-12-31 | 北京奇艺世纪科技有限公司 | 一种媒体文件合并方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100005444A1 (en) * | 2008-07-07 | 2010-01-07 | Coverity, Inc. | Methods for Marking, Merging, and Managing the Results of Software Program Analysis |
CN103116643A (zh) * | 2013-02-25 | 2013-05-22 | 江苏物联网研究发展中心 | 基于Hadoop的智慧医疗数据管理方法 |
US20170078094A1 (en) * | 2011-07-27 | 2017-03-16 | Aon Benfield Global, Inc. | Impact data manager for dynamic data delivery |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN109344119A (zh) * | 2018-10-24 | 2019-02-15 | 北京奇虎科技有限公司 | 文件合并处理方法、装置、计算设备及计算机存储介质 |
-
2019
- 2019-03-08 CN CN201910176617.1A patent/CN109947712A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100005444A1 (en) * | 2008-07-07 | 2010-01-07 | Coverity, Inc. | Methods for Marking, Merging, and Managing the Results of Software Program Analysis |
US20170078094A1 (en) * | 2011-07-27 | 2017-03-16 | Aon Benfield Global, Inc. | Impact data manager for dynamic data delivery |
CN103116643A (zh) * | 2013-02-25 | 2013-05-22 | 江苏物联网研究发展中心 | 基于Hadoop的智慧医疗数据管理方法 |
CN108053863A (zh) * | 2017-12-22 | 2018-05-18 | 中国人民解放军第三军医大学第附属医院 | 适合大小文件的海量医疗数据存储系统及数据存储方法 |
CN109344119A (zh) * | 2018-10-24 | 2019-02-15 | 北京奇虎科技有限公司 | 文件合并处理方法、装置、计算设备及计算机存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112231293A (zh) * | 2020-09-14 | 2021-01-15 | 杭州数梦工场科技有限公司 | 文件读取方法、装置、电子设备和存储介质 |
CN112965939A (zh) * | 2021-02-07 | 2021-06-15 | 中国工商银行股份有限公司 | 一种文件合并方法、装置和设备 |
CN113873176A (zh) * | 2021-10-27 | 2021-12-31 | 北京奇艺世纪科技有限公司 | 一种媒体文件合并方法及装置 |
CN113873176B (zh) * | 2021-10-27 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 一种媒体文件合并方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11403321B2 (en) | System and method for improved performance in a multidimensional database environment | |
US20230138736A1 (en) | Cluster file system-based data backup method and apparatus, and readable storage medium | |
JP6381801B2 (ja) | 格納クライアントファイルシステム用格納ボリュームの動的スケーリング | |
US9298385B2 (en) | System, method and computer program product for deduplication aware quality of service over data tiering | |
CN109947712A (zh) | 计算框架内自动合并文件的方法、系统、设备及介质 | |
CN110162517A (zh) | 数据迁移方法、装置、设备及计算机可读存储介质 | |
CN111881135A (zh) | 一种数据聚合方法、装置、设备及计算机可读存储介质 | |
CN113297182B (zh) | 数据迁移方法、设备、存储介质及程序产品 | |
US10956499B2 (en) | Efficient property graph storage for streaming/multi-versioning graphs | |
US11086726B2 (en) | User-based recovery point objectives for disaster recovery | |
US20220253222A1 (en) | Data reduction method, apparatus, computing device, and storage medium | |
CN116450287A (zh) | 业务容器存储容量的管理方法、装置、设备及可读介质 | |
CN109522273B (zh) | 一种实现数据写入的方法及装置 | |
EP3574418A1 (en) | Management of cloud-based shared content using predictive cost modeling | |
CN106980618B (zh) | 基于MongoDB分布式集群架构的文件存储方法和系统 | |
CN108363727B (zh) | 一种基于zfs文件系统的数据存储方法及装置 | |
CN107632786B (zh) | 一种数据重删的管理方法及装置 | |
CN112433812A (zh) | 一种虚拟机跨集群迁移方法、系统、设备及计算机介质 | |
US20210181945A1 (en) | User-based recovery point objectives for disaster recovery | |
CN111090782A (zh) | 一种图数据存储方法、装置、设备及存储介质 | |
EP3264254B1 (en) | System and method for a simulation of a block storage system on an object storage system | |
CN114138424B (zh) | 一种虚拟机内存快照生成方法、装置及电子设备 | |
CN106909472B (zh) | 一种分布式文件系统的输入/输出负载调整方法及装置 | |
US20160232166A1 (en) | Method and Apparatus for Accessing File | |
CN114153647B (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: 20190628 |
|
RJ01 | Rejection of invention patent application after publication |