大数据平台的文件合并方法及装置与流程

文档序号:17080133发布日期:2019-03-09 00:09阅读:391来源:国知局
大数据平台的文件合并方法及装置与流程

本发明涉及计算机技术领域,尤其涉及一种大数据平台的文件合并方法及装置。



背景技术:

在大数据平台中,例如hadoop集群,进行数据分析时,数据目录中往往存在海量的小文件,这些小文件的存在对namenode造成很大的压力,导致集群的计算效率降低了数倍甚至数十倍。现有技术中,需要针对每一组数据目录或每一类目标数据分别开发功能组件,来对文件进行合并。

然而,现有的文件合并方案只能根据时间来分配调度计划。这种维护模式存在很多弊端:一是开发内容比较琐碎,开发成本高;二是无法根据实际数据情况安排调度计划,任务启动时可能小文件并不多,浪费集群计算资源,或者任务执行过后又有新的文件写入目录,小文件的数量问题没有得到很好的解决;三是每次文件处理的计算资源无法根据实际情况动态申请。



技术实现要素:

有鉴于此,本发明提供一种大数据平台的文件合并方法及装置,以减少小文件,优化namenode的内存占用,使大数据平台可以容纳更多的文件数量。

为了实现上述目的,本发明采用以下方案:

在本发明一个实施例中,大数据平台的文件合并方法,包括:

监控大数据平台的目录变化,并判断变化的目录下的文件的数量是否发生变化;

在所述变化的目录下的文件的数量发生变化的情况下,对所述变化的目录下具有相似特征的文件进行分组;

判断同一组的文件中是否存在设定数量的小于设定数据块整数倍大小的小文件;

在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并对同一组的所述小文件进行合并。

在本发明一个实施例中,大数据平台的文件合并装置,包括:

文件监控单元,用于监控大数据平台的目录变化,并判断变化的目录下的文件的数量是否发生变化;

文件分组单元,用于在所述变化的目录下的文件的数量发生变化的情况下,对所述变化的目录下具有相似特征的文件进行分组;

小文件判断单元,用于判断同一组的文件中是否存在设定数量的小于设定数据块整数倍大小的小文件;

文件合并单元,用于在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并对同一组的所述小文件进行合并。

在本发明一个实施例中,计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述方法的步骤。

在本发明一个实施例中,计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。

本发明的大数据平台的文件合并方法、大数据平台的文件合并装置、计算机设备及计算机可读存储介质,通过监控大数据平台的目录变化,对变化的目录下具有相似特征的文件进行分组,并对同一组文件中小于设定数据块整数倍大小的小文件进行合并,能够减少小文件,优化namenode的内存占用,使大数据平台(例如集群)可以容纳更多的文件数量,能够帮助实现大数据平台对文件大小的精细化控制。基于监控得到的大数据平台的目录变化进行文件合并,能够在小文件生成后的最短时间内即可完成合并,从而能够提高文件合并的实时性,提高文件合并效率。在同一组的文件中存在小文件的情况下进行分组合并,能够大大节约大数据平台的资源,使资源分配更合理。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明一实施例的大数据平台的文件合并方法的流程示意图;

图2是本发明一实施例中监控大数据平台的目录变化并判断变化的目录下的文件的数量是否发生变化的方法流程示意图;

图3是本发明另一实施例中监控大数据平台的目录变化并判断变化的目录下的文件的数量是否发生变化的方法流程示意图;

图4是本发明一实施例中对变化的目录下具有相似特征的文件进行分组的方法流程示意图;

图5是本发明另一实施例的大数据平台的文件合并方法的流程示意图;

图6是本发明一实施例中对同一组的小文件进行合并的方法流程示意图;

图7是本发明又一实施例的大数据平台的文件合并方法的流程示意图;

图8是本发明另一实施例中对变化的目录下具有相似特征的文件进行分组的方法流程示意图;

图9是本发明一实施例的大数据平台的文件合并方法的交互示意图;

图10是本发明一实施例的大数据平台的文件合并装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1是本发明一实施例的大数据平台的文件合并方法的流程示意图。如图1所示,一些实施例的大数据平台的文件合并方法,可包括:

步骤s110:监控大数据平台的目录变化,并判断变化的目录下的文件的数量是否发生变化;

步骤s120:在所述变化的目录下的文件的数量发生变化的情况下,对所述变化的目录下具有相似特征的文件进行分组;

步骤s130:判断同一组的文件中是否存在设定数量的小于设定数据块整数倍大小的小文件;

步骤s140:在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并对同一组的所述小文件进行合并。

在上述步骤s110中,该大数据平台例如可以是hadoop集群,可以通过监控hdfs监控hadoop集群的目录变化。可以监控大数据平台的主干目录的变化,或者同时监控该主干目录的叶子目录的变化,具体监控的目录可以根据需要进行预配置确定。该变化的目录可以包括修改的目录,例如,某一目录下有文件修改、文件增加、文件修改后的稳定时间等,则该目录为修改的目录。某一目录下的文件的数量可以根据文件列表得知。

在上述步骤s120中,在变化的目录下的文件的数量发生变化时,例如文件数量增加,该的变化的目录下可能出现冗余文件。相似特征可以根据文件名、文件内容、文件模式等进行判断。具有相似特征的文件可以包括文件名、文件名后缀、文件格式等具有某种共性的文件,例如,文件名后缀相同、文件名长度相同、文件名中字符具有特定规律等,可以将文件名后缀相同的文件划分为同一组,或者可以将文件名后缀相同且文件名长度均为设定长度的文件划分为同一组。

在上述步骤s130中,数据块可以是大数据平台配置的最小存储单元。该设定数量和该设定数据块整数倍大小可以根据需要进行配置,例如根据大数据平台的存储方式确定该设定数据块整数倍大小,结合文件大小的规律、该设定数据块整数倍大小及大数据平台的存储方式确定该设定数量。

在上述步骤s140中,变化的目录下的文件可以有很多,同一变化的目录下的文件可以分成一组或多组。可以由大数据平台返回每一组小文件,以分组合并文件数据。可以利用现有的或专门设计的合并程序进行文件合并。例如,对于hadoop集群的小文件,可以直接使用hive/spark/sparksql提供的api(应用程序编程接口),一次性读取若干小文件的数据后,按预定的规则将数据重写成文件,来实现文件合并操作。

常规的文件合并的主要目标是减少文件数量和缩减文件所占用的空间,而大数据平台的文件合并的主要目标并不是减少文件个数或者缩小磁盘总占用空间,而是精细化的控制每个文件的大小,使合并后的每个文件的大小都正好是大数据平台存储块的整数倍,例如集群block大小(通常是64m/128m/256m)。集群的block为128m,则一个128m的文件只占用一个block,而一个129m的文件就要占用两个。大数据平台并不单纯追求减少文件数量。比如同样是1g的数据,假如放在1个文件中,且集群副本数是3,则这份数据只存在于3个不同的数据节点上,计算的时候只能在这三个节点上并发计算,否则就要考虑数据拉取的网络开销。而如果1g数据放在4个256m的文件中,则这些数据也许就分散在10个甚至更多的节点上,计算的时候并发度可以更高。当然文件过多又会导致namenode节点内存的负荷提升,所以大数据平台的小文件合并的复杂度更高。

假设某平台配置的存储块大小是128m,如果平台上的某个文件只有40m,单个文件远小于数据块大小,但又要占用一个数据块,则需要进行合并。而另有一个文件大小为150m,单个文件大于数据块,但是又远小于两个数据块的大小,浪费了第二个数据块的存储,该文件也需要进行合并。

本实施例中,通过监控大数据平台的目录变化,在变化的目录下的文件的数量发生变化的情况下对变化的目录下具有相似特征的文件进行分组,并对同一组文件中小于设定数据块整数倍大小的小文件进行合并,能够实现对集群目录的监控,并自动分析与合并小文件,减少小文件,优化namenode的内存占用,使大数据平台(例如集群)可以容纳更多的文件数量,能够帮助实现大数据平台对文件大小的精细化控制。而且,基于监控得到的大数据平台的目录变化进行文件合并,能够在小文件生成后的最短时间内即可完成合并,从而能够提高文件合并的实时性,提高文件合并效率。在同一组的文件中存在小文件的情况下,对具有相似特征的文件进行分组合并,而不是简单地根据定时任务或者设定执行间隔来分配调度计划进行文件合并,以此能够大大节约大数据平台的资源,使资源分配更合理。

图2是本发明一实施例中监控大数据平台的目录变化并判断变化的目录下的文件的数量是否发生变化的方法流程示意图。如图2所示,上述步骤s110,即,监控大数据平台的目录变化,并判断变化的目录下的文件的数量是否发生变化,可包括:

步骤s111:获取待监控的目录;根据所述待监控的目录轮询查询大数据平台的目录信息,并获取变化的目录的当前文件列表;

步骤s112:获取所述变化的目录的历史文件列表;通过比对所述当前文件列表和所述历史文件列表,判断所述变化的目录下的文件的数量是否增加,以判断所述变化的目录下的文件的数量是否发生变化。

在上述步骤s111中,该待监控的目录可以根据需要进行配置,例如,可以包括大数据平台的主干目录,或者同时包括该主干目录或其他主干目录的叶子目录。通过轮询查询可以依序定时查询大数据平台的目录信息,例如通过namenode/api/hdfs客户端等方式查询hadoop集群的目录信息。该目录信息可以反映待监控的目录的当前状态,例如,可以包括文件目录、目录最近修改时间、目录下的文件列表等。

在上述步骤s112中,该当前文件列表可以是当前目录及其子目录的文件名列表。该历史文件列表可以是历史目录及其子目录的文件名列表。大数据平台的目录的历史状态,包括历史修改信息、历史文件列表等,可以记录在大数据平台的记录中心,所以可以根据该变化的目录在记录中心中找到相应的目录,然后根据找到的目录得到相应的历史文件列表。对于每一个变化的目录,均可以通过比对相应当前文件列表和相应历史文件列表判断是否有新增文件。在其他实施例中,可以通过比对当前目录状态与记录中心登记的历史状态,判断目录中是否存在新的数据文件。

本实施例中,通过比对当前文件列表和历史文件列表,可以容易地判断出文件数量的变化。通过判断文件的数量是否增加,能够判断出最可能出现文件冗余或需要文件大小精细化控制的情况。

图3是本发明另一实施例中监控大数据平台的目录变化并判断变化的目录下的文件的数量是否发生变化的方法流程示意图。如图3所示,图2所示的监控大数据平台的目录变化并判断变化的目录下的文件的数量是否发生变化的方法,还可包括:

步骤s113:获取所述变化的目录的当前修改时间和最近历史修改时间;

步骤s114:判断所述当前修改时间和所述最近历史修改时间的差值是否大于设定时长,以判断所述变化的目录下的文件的数量是否发生变化。

在上述步骤s113中,可以根据所述待监控的目录轮询查询大数据平台的目录信息,获取所述变化的目录的当前修改时间。可以在获取变化的目录的当前文件列表时,一起获取所述变化的目录的当前修改时间。可以在获取所述变化的目录的当前修改时间后,获取所述变化的目录的最近历史修改时间。该最近历史修改时间,可以指最近一次修改的时间,可以预先记录在记录中心,并在需要时从该记录中心获取。

在上述步骤s114中,该设定时长可以根据需要进行配置,通过判断所述当前修改时间和所述最近历史修改时间的差值是否大于设定时长,可以判断最近一次修改。

本实施例中,通过判断所述当前修改时间和所述最近历史修改时间的差值是否大于设定时长,可以判断变化目录下的文件经过最近一次修改后,是否稳定了一段时间,以此可以根据文件修改情况合理使用大数据平台的资源,避免在不必要的情况下执行文件合并动作而导致浪费资源。

图4是本发明一实施例中对变化的目录下具有相似特征的文件进行分组的方法流程示意图。如图4所示,上述步骤s120中,对所述变化的目录下具有相似特征的文件进行分组,可包括:

步骤s121:根据文件命名规则确定所述变化的目录下的文件是否具有相似特征;或者,读取所述变化的目录下的文件的部分数据,并根据读取的所述部分数据所包含的模式信息确定所述变化的目录下的文件是否具有相似特征;所述文件命名规则包括文件名长度的规则、文件名所包含字符的规律、及文件名后缀的一致性中的一个或多个;

步骤s122:将所述变化的目录下具有相似特征的文件划分至同一组。

在上述步骤s121中,该文件名长度的规则可以是某两个文件的文件名长度相同或均为设定长度。该文件名所包含字符的规律可以是某两个文件的文件名包含相同的字母或数字。该文件名后缀的一致性可以是某两个文件的文件名后缀相同。根据文件命名规则确定所述变化的目录下的文件是否具有相似特征,可以基于文件名找到可以合并的文件。

读取所述变化的目录下的文件的部分数据,例如读取了json、orc这类文件包含的schema信息。通过分析读取的所述部分数据的schema信息一致时,可以认为所述变化的目录下的文件具有相似特征,从而触发文件合并动作。以此,可以基于文件内容找到可以合并的文件。

本实施例中,通过根据文件名或文件内容对文件进行分组,能够容易地实现对文件的合并。

图5是本发明另一实施例的大数据平台的文件合并方法的流程示意图。如图5所示,图1所示的大数据平台的文件合并方法,在步骤s130之前,即,判断同一组的文件中是否存在设定数量的小于设定数据块整数倍大小的小文件之前,还可包括:

步骤s150:根据所述大数据平台配置的存储块的大小确定设定数据块整数倍大小。

在大数据平台中,例如集群,文件以集群块(block)大小的整数倍进行块存储,小于一个集群块大小的文件也要占用一个集群块,该设定数据块整数倍大小根据所述大数据平台配置的存储块的大小确定,例如可以根据集群块大小确定,以此,通过找出小于设定数据块整数倍大小的小文件或者大于单文件块大小但并非块大小整数倍大小的文件来进行合并,能够将占用集群块但未充分利用集群块的小文件合并成较大文件,不仅能够减少文件数量,而且能够精细化的控制每个文件的大小。

本实施例中,通过根据所述大数据平台配置的存储块的大小确定设定数据块整数倍大小,可以精细化的控制每个文件的大小。

在一些实施例中,图5所示的大数据平台的文件合并方法,还可包括:根据所述大数据平台配置的存储块的大小拆分合并后的小文件。例如,指定加载xxxx目录下的所有schema一致的orc文件里的数据,将数据以orc格式重写至yyyy目录下,每256m拆分一个文件。通过,根据所述大数据平台配置的存储块的大小拆分合并后的小文件,能够减少节点数量,精细控制文件的大小。

图6是本发明一实施例中对同一组的小文件进行合并的方法流程示意图。如图6所示,上述步骤s140,即,在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并对同一组的所述小文件进行合并,可包括:

步骤s141:在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并根据所述组的小文件的数量和文件大小向所述大数据平台申请资源;

步骤s142:利用申请的资源调用文件合并程序对所述组的小文件进行合并。

在上述步骤s141中,根据小文件组中的文件数量与大小选择资源列表,向集群申请资源。在上述步骤s142中,可以使用指定的合并程序执行小文件合并操作。如果配置中心有提供该类目录或者文件类型的处理模块,则使用配置好的模块,否则根据文件类型调用默认模块生成合并程序。

本实施例中,合并操作所需资源可根据实际数据情况动态申请,自动选用最合理的资源配比。

图7是本发明又一实施例的大数据平台的文件合并方法的流程示意图。如图7所示,图1所示的大数据平台的文件合并方法,还可包括:

步骤s160:更新记录合并的所述小文件的目录信息,并记录相应的合并信息;所述合并信息包括文件合并前后的文件名。

在上述步骤s160中,文件合并前后的文件名是指合并前各文件的文件名和合并后的文件的文件名。可以将处理后的目录信息重新在记录中心进行登记。所述合并信息还可以包括合并时间等信息。

本实施例中,通过更新目录信息可以便于找到合并后的文件。通过记录合并信息,可以便于查找到合并文件的修改历史。

图8是本发明另一实施例中对变化的目录下具有相似特征的文件进行分组的方法流程示意图。如图8所示,图4所示的对变化的目录下具有相似特征的文件进行分组的方法,在上述步骤s121之前,即,根据文件命名规则确定所述变化的目录下的文件是否具有相似特征之前,还可包括:

步骤s123:获取文件命名规则;所述文件命名规则是配置生成,或者是利用历史合并信息进行分类或聚类学习生成。

在上述步骤s123中,该历史合并信息可包括合并前的文件的文件名、合并后的文件的文件名、合并时间、目录等,可以在每次合并处理完成后通过记录合并信息得到。

自定义配置用于合并分组的文件命名规则,可以直接配置若干规则,例如,指定xx目录及子目录下,以xxx为后缀、文件名长度为10的文件需要监控和自动合并,这个配置规则需支持正则表达式。

自学习配置用于合并分组的文件命名规则,可以通过机器学习算法自动分析相似的文件规则。一种,依赖分类判断,例如,某目录下,文件命名规则接近(例如,后缀相同,文件名长度相同,文件名中的字母、数字、符号的分布有一定规律等),则判断该组文件可以合并。另一种,依赖历史处理类比判断,例如,曾经手工或通过配置在a目录下执行某类文件的合并,而检测到b目录也包含类似的文件,则猜测b目录下的文件也可以合并。再一种,文件内容分析,可以根据文件的格式判断,例如,json、orc这类包含schema信息的文件,在读取部分文件数据,并分析出文件的schema一致后,也可触发文件合并。

为使本领域技术人员更好地了解本发明,下面将以一具体实施例说明本发明的实施。为说明之便,以hadoop集群为例说明大数据平的文件合并方法,但并作为对所述大数据平台的限定。

图9是本发明一实施例的大数据平台的文件合并方法的交互示意图。参见图9,该实施例的大数据平台的文件合并方法,可包括:

步骤1:主控程序从配置中心读取监控目录的配置信息,包含但不限于待监控的主干目录与叶子目录、文件通配符、文件块大小、待合并文件数量阈值、目录稳定时长等配置。

步骤2:根据配置目录,轮询查询目录信息(通过namenode/api/hdfs客户端等方式查询),获取目录最近修改时间与文件列表。

步骤3:比对当前目录状态与记录中心登记的历史状态,判断目录中是否存在新的数据文件。

步骤4:根据原始配置与步骤8中自学习的文件命名规则,对小文件进行分组,对内容、格式一致,且小于块大小的文件数量达到配置阈值的小文件组返回。

步骤5:处理小文件组并生成合并计划,如果配置中心有提供该类目录或者文件类型的处理模块,则使用配置好的模块,否则根据文件类型调用默认模块生成合并程序。

步骤6:根据小文件组中的文件数量与大小选择资源列表,向集群申请资源,并使用步骤5中指定的合并程序执行小文件合并操作。

步骤7:将处理后的目录信息重新在记录中心进行登记。

步骤8:记录中心根据历史合并记录,调用分类或聚类的数据算法,分析出文件分类规则,并固化下来,供步骤4使用。

本实施例中,监控hdfs的目录变化情况,当目录下的文件数量发生了变化,并在之后稳定了x分钟,则判断目录内是否存在n个小于m大小的文件(x、n、m均可配置),并根据文件名判断这组小文件是否为同一性向的数据源(可根据文件后缀、分段规则与长度、通配符或正则、历史处理文件名的分类分析等方法进行判断),如果小文件达到阈值,则根据文件的数量与大小动态申请资源进行合并。集群的小文件合并只要提前规划即可,无需单独开发和人工干预,降低维护成本,且可根据冷热数据分别指定不同的合并规则,使集群文件配置更合理。文件合并的实时性更高,在小文件生成后的最短时间内即可完成合并,大大节约集群资源。合并操作所需资源可根据实际数据情况动态申请,自动选用最合理的资源配比,效率更高,资源分配更加合理。

基于与图1所示的大数据平台的文件合并方法相同的发明构思,本发明实施例还提供了一种大数据平台的文件合并装置,如下面实施例所述。由于该大数据平台的文件合并装置解决问题的原理与大数据平台的文件合并方法相似,因此该大数据平台的文件合并装置的实施可以参见大数据平台的文件合并方法的实施,重复之处不再赘述。

图10是本发明一实施例的大数据平台的文件合并装置的结构示意图。如图10所示,一些实施例的大数据平台的文件合并装置,可包括:文件监控单元210、文件分组单元220、小文件判断单元230及文件合并单元240,上述各单元顺序连接。

文件监控单元210,用于监控大数据平台的目录变化,并判断变化的目录下的文件的数量是否发生变化;

文件分组单元220,用于在所述变化的目录下的文件的数量发生变化的情况下,对所述变化的目录下具有相似特征的文件进行分组;

小文件判断单元230,用于判断同一组的文件中是否存在设定数量的小于设定数据块整数倍大小的小文件;

文件合并单元240,用于在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并对同一组的所述小文件进行合并。

在一些实施例中,文件监控单元210,可包括:当前文件列表获取模块和文件数量判断模块,二者相互连接。当前文件列表获取模块,用于获取待监控的目录;根据所述待监控的目录轮询查询大数据平台的目录信息,并获取变化的目录的当前文件列表;文件数量判断模块,用于获取所述变化的目录的历史文件列表;通过比对所述当前文件列表和所述历史文件列表,判断所述变化的目录下的文件的数量是否增加,以判断所述变化的目录下的文件的数量是否发生变化。

在一些实施例中,文件监控单元210,还可包括:修改时间获取模块和变化时间判断模块,二者相互连接。修改时间获取模块,用于获取所述变化的目录的当前修改时间和最近历史修改时间;变化时间判断模块,用于判断所述当前修改时间和所述最近历史修改时间的差值是否大于设定时长,以判断所述变化的目录下的文件的数量是否发生变化。

在一些实施例中,文件分组单元220,可包括:同一性判断模块和文件组划分模块,二者相互连接。同一性判断模块,用于根据文件命名规则确定所述变化的目录下的文件是否具有相似特征;或者,读取所述变化的目录下的文件的部分数据,并根据读取的所述部分数据所包含的模式信息确定所述变化的目录下的文件是否具有相似特征;所述文件命名规则包括文件名长度的规则、文件名所包含字符的规律、及文件名后缀的一致性中的一个或多个;文件组划分模块,用于将所述变化的目录下具有相似特征的文件划分至同一组。

在一些实施例中,大数据平台的文件合并方法,还可包括:设定数据块整数倍大小确定单元,与小文件判断单元230连接。设定数据块整数倍大小确定单元,用于根据所述大数据平台配置的存储块的大小确定设定数据块整数倍大小。

在一些实施例中,文件合并单元240,可包括:资源申请模块和文件合并模块,二者相互连接。资源申请模块,用于在同一组的文件中存在所述小文件的情况下,获取同一组的所述小文件,并根据所述组的小文件的数量和文件大小向所述大数据平台申请资源;文件合并模块,用于利用申请的资源调用文件合并程序对所述组的小文件进行合并。

在一些实施例中,大数据平台的文件合并方法,还可包括:合并记录单元,与文件合并单元240连接。合并记录单元,用于更新记录合并的所述小文件的目录信息,并记录相应的合并信息;所述合并信息包括文件合并前后的文件名。

在一些实施例中,文件分组单元220,还可包括:规则学习模块,与同一性判断模块连接。规则学习模块,用于获取文件命名规则;所述文件命名规则是配置生成,或者是利用历史合并信息进行分类或聚类学习生成。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述方法的步骤。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。

综上所述,本发明实施例的大数据平台的文件合并方法、大数据平台的文件合并装置、计算机设备及计算机可读存储介质,通过监控大数据平台的目录变化,在变化的目录下的文件的数量发生变化的情况下对变化的目录下具有相似特征的文件进行分组,并对同一组文件中小于设定数据块整数倍大小的小文件进行合并,能够实现对集群目录的监控,并自动分析与合并小文件,减少小文件,优化namenode的内存占用,使大数据平台(例如集群)可以容纳更多的文件数量,能够帮助实现大数据平台对文件大小的精细化控制。而且,基于监控得到的大数据平台的目录变化进行文件合并,能够在小文件生成后的最短时间内即可完成合并,从而能够提高文件合并的实时性,提高文件合并效率。在同一组的文件中存在小文件的情况下,对具有相似特征的文件进行分组合并,而不是根据时间来分配调度计划进行文件合并,以此能够大大节约大数据平台的资源,使资源分配更合理。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1