CN106843763A - 一种基于hdfs系统的文件合并方法及装置 - Google Patents
一种基于hdfs系统的文件合并方法及装置 Download PDFInfo
- Publication number
- CN106843763A CN106843763A CN201710044171.8A CN201710044171A CN106843763A CN 106843763 A CN106843763 A CN 106843763A CN 201710044171 A CN201710044171 A CN 201710044171A CN 106843763 A CN106843763 A CN 106843763A
- Authority
- CN
- China
- Prior art keywords
- file
- combined
- merging
- mapping relations
- time interval
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于HDFS系统的文件合并方法及装置,涉及数据处理领域,通过更新映射关系的方式,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高了合并效率;而且,本申请保留有待合并文件和合并后文件,提升了系统的容错性。该方法包括:根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;合并确定的待合并集合中的待合并文件,并存储至合并后集合中;将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于HDFS系统的文件合并方法及装置。
背景技术
HDFS(Hadoop分布式文件系统)为用于存储大数据的文件存储系统。SPARK集群由一个NameNode(名字服务节点)和若干个DataNode(数据存储节点)组成。其中,NameNode提供元数据服务,管理Block的分配,维护整个文件系统的目录树结构;DataNode则部署在SPARK集群中的其他服务器上,提供真正的数据存储服务。由于每个小文件都要在DataNode中占独立的数据块,因此,当海量的流式数据以小文件的形式存储到SPARK集群中时,将浪费大量的存储空间,且NameNode中也将存储这些流式数据的相关信息,增大了查询压力。
为解决上述问题,现阶段的操作为,从默认数据块中读取前一天存储的文件,合并读取的文件,将合并后的文件存储到临时数据块,再从临时区块读取合并后的文件,将合并后的文件回写到默认数据块中,与此同时覆盖原来存储的文件。
综上所述,根据现阶段的操作可知,对存储的所有数据至少要进行五步操作,流程由于对大量的小文件数据进行读写,将给HDFS系统造成很大的压力较为繁琐,而且若回写时出现故障,可能将导致存储的文件丢失,容错性较差。
发明内容
本发明实施例提供了一种基于HDFS系统的文件合并方法及装置,通过更新映射关系的方式,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高合并的效率;由于本申请保留有待合并文件和合并后文件,也提升了系统的容错性。
本发明实施例提供的一种基于HDFS系统的文件合并方法,包括:
根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
本发明实施例中,通过更新映射关系的方式,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高了合并效率;而且,本申请保留有待合并文件和合并后文件,提升了系统的容错性。
较佳地,该方法还包括:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合,则对所述待合并文件进行合并操作;其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
本发明实施例中,通过比较小文件的占比或者数量,或者通过映射关系中的文件集合是否为待合并集合的方式,来确定是否需要对待合并文件进行合并操作,尽可能最大化利用Spark集群的计算核资源,提升合并效率。
较佳地,该方法还包括:
合并确定的待合并集合中的待合并文件,包括:
根据Spark集群的计算核的数目,确定读取所述待合并文件的分区的个数;
根据确定的分区的个数,对所述待合并文件进行读取;
分别针对每一分区中的待合并文件执行并发合并操作。
本发明实施例中,根据Spark集群的计算核的数量,确定读取待合并文件的分区的个数,并调用Repartition函数对所述待合并文件进行读取,调用Executor函数对每一分区中待合并文件执行合并操作,从而实现每一计算核至少对应一个分区,即通过多个进程同时对待合并文件读取与合并,提升读取与合并效率,提高了Spark集群的计算资源的利用率。
较佳地,所述时间区间为以小时为单位划分得到的。
本发明实施例中,将存储映射关系的HIVE表(基于Hadoop的数据仓库工具)的分区细化到以小时为单位,从而解决了现有技术中以天为单位进行分区导致的合并文件延迟的问题。
较佳地,该方法还包括:
检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;若是,则删除所述待合并文件。
本发明实施例中,通过删除待合并集合的数据文件,释放存储空间,使得HDFS系统的存储利用率最大化。
本发明实施例提供的一种基于HDFS系统的文件合并装置,包括:
读取模块,用于根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
合并模块,用于合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
更新模块,用于将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
本发明实施例中,通过更新映射关系的方式,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高了合并效率;而且,本申请保留有待合并文件和合并后文件,提升了系统的容错性。
较佳地,所述合并模块还用于:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合,则对所述待合并文件进行合并操作;其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
本发明实施例中,通过比较小文件的占比或者数量,或者通过映射关系中的文件集合是否为待合并集合的方式,来确定是否需要对待合并文件进行合并操作,尽可能最大化利用Spark集群的计算核资源,提升合并效率。
较佳地,所述合并模块还用于:
确定读取所述待合并文件的分区的个数,其中,所述分区的个数为根据Spark集群的计算核的数目确定的;
根据确定的分区的个数,对所述待合并文件进行读取;
分别针对每一分区中的待合并文件执行并发合并操作。
本发明实施例中,根据Spark集群的计算核的数量,确定读取待合并文件的分区的个数,并调用Repartition函数对所述待合并文件进行读取,调用Executor函数对每一分区中待合并文件执行合并操作,从而实现每一计算核至少对应一个分区,即通过多个进程同时对待合并文件读取与合并,提升读取与合并效率,提高了Spark集群的计算资源的利用率。
较佳地,所述时间区间为以小时为单位划分得到的。
本发明实施例中,将存储映射关系的HIVE表(基于Hadoop的数据仓库工具)的分区细化到以小时为单位,从而解决了现有技术中以天为单位进行分区导致的合并文件延迟的问题。
较佳地,所述更新模块还用于:
检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;若是,则删除所述待合并文件。
本发明实施例中,通过删除待合并集合的数据文件,释放存储空间,使得HDFS系统的存储利用率最大化。
本发明实施例通过更新映射关系中所述时间区间对应的集合,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高了合并效率;由于保留有待合并文件和合并后文件,也提升了系统的容错性;根据Spark集群的计算核的数量,确定读取待合并文件的分区的个数,并调用Repartition函数对所述待合并文件进行读取,调用Executor函数对每一分区中待合并文件执行合并操作,从而实现每一计算核至少对应一个分区,即通过多个进程同时对待合并文件读取与合并,提升读取与合并效率,提高了Spark集群的计算资源的利用率。
附图说明
图1为本发明实施例一提供的一种基于HDFS系统的文件合并方法的流程示意图;
图2为本发明实施例二提供的一种基于HDFS系统的文件合并方法的流程示意图;
图3为本发明实施例三提供的一种基于HDFS系统的文件合并方法的流程示意图;
图4为本发明实施例四提供的一种基于HDFS系统的文件合并方法的流程示意图;
图5为本发明实施例五提供的一种基于HDFS系统的文件合并方法的流程示意图;
图6为本发明实施例六提供的一种基于HDFS系统的文件合并装置的结构示意图。
具体实施方式
本发明实施例提供了一种基于HDFS系统的文件合并方法及装置,省去了回写步骤,精简了合并流程,提高合并的效率,也提升了系统的容错性。
下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
参见图1,本发明实施例一提供了一种基于HDFS系统的文件合并方法,该方法包括:
S101、根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
S102、合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
S103、将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
具体地,所述时间区间可以以小时为单位划分,即该时间区间为每小时一时间区间;当然所述时间区间也可以以分钟为单位划分,此处不过多限定;此外,所述时间区间并非一定要以一小时为一时间区间进行划分,也可以多小时为一时间区间划分,再或者可以以前五个小时为一时间区间,后十九小时中每一小时为一时间区间划分。通过该技术特征,进一步的降低文件合并的延迟。
也就是,步骤S101具体可为,若时间区间以每一小时一区间进行划分,当凌晨两点时,HDFS系统已成功存储了凌晨一点到凌晨两点的文件,此时,实时的读取存储的凌晨一点到凌晨两点的文件。
或者,步骤S101具体包括:
所述预设的生成待合并文件的时间区间为,当前时间或者用户设定的读取待合并文件的时间。例如,用户输入某一历史时间区间,确定在输入的历史时间区间生成的待合并文件所属的待合并集合。
实施例二:
参见图2,步骤S102具体包括:
S201、确定的待合并文件是否符合预设的合并条件;
S202、若符合预设的合并条件,则对符合预设的合并条件的文件进行合并操作,并将合并后的文件存储至合并后集合中。
其中,预设的合并条件包括如下任一条即可:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合。
其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
本发明实施例二中,通过对小文件的占比和\或数量进行比较,或者通过映射关系中的文件集合为待合并集合的方式,来确定是否需要对待合并文件进行合并操作,尽可能最大化利用Spark集群的计算核资源,提升合并效率。
实施例三:
参见图3,在步骤S102之前,该方法还包括:
S301、根据Spark集群的计算核的数目,确定读取待合并文件的分区的个数。
S302、根据确定的分区的个数,通过多个分区函数对待合并文件进行多线程并发读取。
S303、通过执行和函数(Executor)针对每一分区中的待合并文件执行并发合并操作。
其中,所述分区函数可为:
dataframe.repartition(n).write().mode(SaveMode.Overwrite).parquet(merge_path)
其中,dataframe为数据结构,表示已经读入的小文件数据的整体集合;repartition(n)为分区函数;n为待合并分区的个数或者为待合并文件的通道个数;write().mode(SaveMode.Overwrite)为覆写模式的写入函数;mode(SaveMode.Overwrite)为指定写入的模式为覆写模式;parquet(merge_path)为合并后文件的写入路径与文件格式;parquet(merge_path)为列式存储。
其中,步骤S301具体为:
确定读取待合并文件的分区的个数为Spark集群的计算核的数目,或者为Spark集群的计算核的数目的倍数。通过该技术特征,保证了每一计算核均分配到合并待合并文件的任务,提高利用Spark集群的效率,也提升了SPARK集群的可扩展性。
本发明实施例中,放弃使用SparkSQL的HQL方案,而是直接使用Dataframe的Repartition方案,避免了通过Spark中的Limit函数单点读写数据的速率瓶颈,即当使用Spark时只能使用一个计算核Executor,只能单进程的执行读取和合并操作,在本申请的方案中,针对每一RDD(Resilient Distributed Datasets,弹性分布式数据集)分区,均调用一Repartition函数对待合并文件进行读取,并通过调用计算核Executor函数对每一RDD分区中读取的待合并文件执行合并操作,从而实现对待合并文件多个进程的读取与合并,提升了Spark集群的计算资源的利用率,缩短了合并时间。
实施例四:
参见图4,在步骤S103之后,该方法还包括:
S401、检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;
S402、若是,则删除所述待合并文件。
本发明实施例中,为避免机器故障导致的合并后文件丢失,在将待合并文件执行合并操作之后,并未立即删除待合并文件,即保留了待合并文件,一旦合并后文件出现问题可通过查找待合并集合中的文件,从而保证HDFS系统的容错性。
其中,该方法还包括:
按照预设周期,执行步骤S401。
本发明实施例中,按照预设周期检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系,若是,则删除待合并文件,否则保留待合并文件,从而释放部分存储空间,提高存储空间的利用率,提升数据的控制力。
实施例五:
为便于理解,下面将结合图5进一步对本发明实施例五进行解释。
S501、通过Spark Streaming的方式将输入的文件写入到预设的待合并集合的子待合并集合中;其中,待合并集合中的文件为以小时为单位进行划分的,即零点到一点接收到的文件存储到第一子待合并集合中;一点到两点接收到的文件存储到第二子待合并集合中;两点到三点接收到的文件存储到第三子待合并集合中;三点到四点接收到的文件存储到第四子待合并集合中等,直到第二十三点到第二十四点接收到的文件存储到第二十四子待合并集合中。
S502、当一点半时,根据确定的读取待合并文件的RDD分区的个数,通过多个分区函数Repartition(n)从待合并集合的第一子待合并集合中对待合并文件进行n线程并发读取待合并文件;其中,RDD分区的个数是根据Spark集群的计算核Executor的数目确定的;n为正整数。
S503、利用计算和Executor函数针对每一分区中的待合并文件执行并发合并操作,并将合并后的文件存储至第一子合并后集合中;其中,所述合并后集合的子集合与待合并集合的子集合为一一对应的关系。
S504、将HIVE的Metastore元数据信息(RDBMS数据库)中零点到一点的时间区间与第一子待合并集合的映射关系,更新为该时间区间与第一子合并后集合的映射关系;
S505、当两点半时,再次执行步骤S502,从第二子待合并集合中读取待合并文件,并将合并后的文件存储至第二子合并后集合中,依次类推。
本发明实施例中,当读取缓存预设时间区间的待合并文件后,执行合并操作,合并操作结束意味着合并后集合生成,此时待合并文件和合并后文件共存,从而实现用户场景的切换;通过改变HIVE的Metastore的元数据信息,切换读写文件的路径,在切换之后,新的文件将写入合并后集合,直到检测到合并后集合中确定的待合并文件符合预设的合并条件,将执行步骤S202。由于本发明为在合并文件后立即修改HIVE的Metastore的元数据信息,从而实现用户查询HIVE系统中数据时感知不到变化,保证查询性能最大化;此外,取消了将合并后文件回写到待合并集合的步骤,进一步缩短了合并文件的时间,减少了回写的计算资源的消耗。
为保证本发明的实用性,通过本发明实施例五提供的方案对17千万条数据以及533个文件进行合并,合并时间为12分钟;而通过现有技术的合并时间为55分钟,因此,本发明实施例提供的方案缩短了80%的合并时间,有效的提升了合并的效率。
实施例六:
参见图6,本发明实施例六提供了一种基于HDFS系统的文件合并装置,该装置包括:
读取模块601,用于根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
合并模块602,用于合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
更新模块603,用于将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
具体地,所述合并模块602还用于:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合,则对所述待合并文件进行合并操作;其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
具体地,所述合并模块602还用于:
确定读取所述待合并文件的分区的个数,其中,所述分区的个数为根据Spark集群的计算核的数目确定的;
根据确定的分区的个数,对所述待合并文件进行读取;
分别针对每一分区中的待合并文件执行并发合并操作。
具体地,所述时间区间为以小时为单位划分得到的。
具体地,所述更新模块603还用于:
检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;若是,则删除所述待合并文件。
具体地,本发明实施例中所述读取模块601、合并模块602以及更新模块603可由处理器实现。
综上所述,本发明实施例提供了一种基于HDFS系统的文件合并方法及装置,通过更新映射关系中所述时间区间对应的集合,而非将合并后文件回写到原集合中,从而省去了回写步骤,精简了合并流程,提高合并的效率;根据Spark集群的计算核的数量,确定读取待合并文件的分区的个数,并调用Repartition函数对所述待合并文件进行读取,调用Executor函数对每一分区中待合并文件执行合并操作,从而实现每一计算核至少对应一个分区,即通过多个进程同时对待合并文件读取与合并,提升读取与合并效率,提高了Spark集群的计算资源的利用率;本申请通过保留待合并文件和合并后文件,从而提升了系统的容错性、健壮性和稳定性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种基于HDFS系统的文件合并方法,其特征在于,包括:
根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合,则对所述待合并文件进行合并操作;其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
3.根据权利要求1所述的方法,其特征在于,合并确定的待合并集合中的待合并文件,包括:
根据Spark集群的计算核的数目,确定读取所述待合并文件的分区的个数;
根据确定的分区的个数,对所述待合并文件进行读取;
分别针对每一分区中的待合并文件执行并发合并操作。
4.根据权利要求1所述的方法,其特征在于,所述时间区间为以小时为单位划分得到的。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;若是,则删除所述待合并文件。
6.一种基于HDFS系统的文件合并装置,其特征在于,包括:
读取模块,用于根据预设的生成待合并文件的时间区间,以及所述时间区间与包括所述待合并文件的待合并集合的映射关系,确定所述待合并集合;
合并模块,用于合并确定的待合并集合中的待合并文件,并将生成的合并后文件存储至合并后集合中;
更新模块,用于将所述映射关系更新为所述时间区间与所述合并后集合的映射关系。
7.根据权利要求6所述的装置,其特征在于,所述合并模块还用于:
若所述待合并文件中小文件的占比不小于预设占比门限值,或者所述待合并文件中小文件的数量不小于预设数量门限值,或者所述映射关系中的文件集合为所述待合并集合,则对所述待合并文件进行合并操作;其中,所述小文件为所占空间小于预设门限值的文件,其中,所述预设门限值为根据所述数据存储节点的大小确定的。
8.根据权利要求6所述的装置,其特征在于,所述合并模块还用于:
确定读取所述待合并文件的分区的个数,其中,所述分区的个数为根据Spark集群的计算核的数目确定的;
根据确定的分区的个数,对所述待合并文件进行读取;
分别针对每一分区中的待合并文件执行并发合并操作。
9.根据权利要求6所述的装置,其特征在于,所述时间区间为以小时为单位划分得到的。
10.根据权利要求6所述的装置,其特征在于,所述更新模块还用于:
检测所述映射关系是否为所述时间区间与所述合并后集合的映射关系;若是,则删除所述待合并文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710044171.8A CN106843763A (zh) | 2017-01-19 | 2017-01-19 | 一种基于hdfs系统的文件合并方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710044171.8A CN106843763A (zh) | 2017-01-19 | 2017-01-19 | 一种基于hdfs系统的文件合并方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106843763A true CN106843763A (zh) | 2017-06-13 |
Family
ID=59119859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710044171.8A Pending CN106843763A (zh) | 2017-01-19 | 2017-01-19 | 一种基于hdfs系统的文件合并方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843763A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330024A (zh) * | 2017-06-21 | 2017-11-07 | 华为机器有限公司 | 标签系统数据的存储方法和装置 |
CN108256115A (zh) * | 2017-09-05 | 2018-07-06 | 国家计算机网络与信息安全管理中心 | 一种面向SparkSql的HDFS小文件实时合并实现方法 |
CN109189798A (zh) * | 2018-09-30 | 2019-01-11 | 浙江百世技术有限公司 | 一种基于spark同步更新数据的方法 |
CN109902067A (zh) * | 2019-02-15 | 2019-06-18 | 杭州数梦工场科技有限公司 | 文件处理方法、装置、存储介质及计算机设备 |
WO2019179449A1 (zh) * | 2018-03-22 | 2019-09-26 | 中国银联股份有限公司 | 一种HBase表的Region合并方法、装置及计算机设备 |
CN110908788A (zh) * | 2019-12-02 | 2020-03-24 | 北京锐安科技有限公司 | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 |
CN112231293A (zh) * | 2020-09-14 | 2021-01-15 | 杭州数梦工场科技有限公司 | 文件读取方法、装置、电子设备和存储介质 |
CN113127548A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种文件合并的方法、装置、设备及存储介质 |
CN113946289A (zh) * | 2021-09-23 | 2022-01-18 | 南京医基云医疗数据研究院有限公司 | 基于Spark计算引擎的文件合并方法及装置、存储介质、设备 |
CN117632860A (zh) * | 2024-01-25 | 2024-03-01 | 云粒智慧科技有限公司 | 基于Flink引擎的小文件合并方法、装置及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571827A (zh) * | 2008-04-30 | 2009-11-04 | 国际商业机器公司 | 保存日志的方法和日志系统 |
CN102646121A (zh) * | 2012-02-23 | 2012-08-22 | 武汉大学 | 结合RDBMS和Hadoop云存储的两级存储方法 |
CN103344305A (zh) * | 2013-07-18 | 2013-10-09 | 成都微英威诺环境监控设备有限公司 | 基于文件自动管理系统和gsm模块的超声波液位记录仪 |
CN103559229A (zh) * | 2013-10-22 | 2014-02-05 | 西安电子科技大学 | 基于MapFile的小文件管理服务SFMS系统及其使用方法 |
CN103793479A (zh) * | 2014-01-14 | 2014-05-14 | 上海上讯信息技术股份有限公司 | 日志管理方法及系统 |
CN104133882A (zh) * | 2014-07-28 | 2014-11-05 | 四川大学 | 一种基于hdfs的小文件处理方法 |
US20150227394A1 (en) * | 2014-02-07 | 2015-08-13 | International Business Machines Corporation | Detection of time points to voluntarily yield resources for context switching |
CN105049524A (zh) * | 2015-08-13 | 2015-11-11 | 浙江鹏信信息科技股份有限公司 | 一种基于hdfs的大规模数据集装载的方法 |
CN105656706A (zh) * | 2014-11-14 | 2016-06-08 | 北京通达无限科技有限公司 | 业务数据的处理方法及设备 |
CN105653592A (zh) * | 2016-01-28 | 2016-06-08 | 浪潮软件集团有限公司 | 一种基于hdfs的小文件合并工具和方法 |
CN105975493A (zh) * | 2016-04-26 | 2016-09-28 | 北京神州绿盟信息安全科技股份有限公司 | 一种文件合并方法及装置 |
CN106021585A (zh) * | 2016-06-02 | 2016-10-12 | 同济大学 | 一种基于时空特性的交通事件视频存取方法及系统 |
-
2017
- 2017-01-19 CN CN201710044171.8A patent/CN106843763A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571827A (zh) * | 2008-04-30 | 2009-11-04 | 国际商业机器公司 | 保存日志的方法和日志系统 |
CN102646121A (zh) * | 2012-02-23 | 2012-08-22 | 武汉大学 | 结合RDBMS和Hadoop云存储的两级存储方法 |
CN103344305A (zh) * | 2013-07-18 | 2013-10-09 | 成都微英威诺环境监控设备有限公司 | 基于文件自动管理系统和gsm模块的超声波液位记录仪 |
CN103559229A (zh) * | 2013-10-22 | 2014-02-05 | 西安电子科技大学 | 基于MapFile的小文件管理服务SFMS系统及其使用方法 |
CN103793479A (zh) * | 2014-01-14 | 2014-05-14 | 上海上讯信息技术股份有限公司 | 日志管理方法及系统 |
US20150227394A1 (en) * | 2014-02-07 | 2015-08-13 | International Business Machines Corporation | Detection of time points to voluntarily yield resources for context switching |
CN104133882A (zh) * | 2014-07-28 | 2014-11-05 | 四川大学 | 一种基于hdfs的小文件处理方法 |
CN105656706A (zh) * | 2014-11-14 | 2016-06-08 | 北京通达无限科技有限公司 | 业务数据的处理方法及设备 |
CN105049524A (zh) * | 2015-08-13 | 2015-11-11 | 浙江鹏信信息科技股份有限公司 | 一种基于hdfs的大规模数据集装载的方法 |
CN105653592A (zh) * | 2016-01-28 | 2016-06-08 | 浪潮软件集团有限公司 | 一种基于hdfs的小文件合并工具和方法 |
CN105975493A (zh) * | 2016-04-26 | 2016-09-28 | 北京神州绿盟信息安全科技股份有限公司 | 一种文件合并方法及装置 |
CN106021585A (zh) * | 2016-06-02 | 2016-10-12 | 同济大学 | 一种基于时空特性的交通事件视频存取方法及系统 |
Non-Patent Citations (2)
Title |
---|
左大鹏: "Hadoop小文件存储管理的研究与实现", 《万方数据》 * |
李路杰: "Hadoop中小文件处理技术的研究与优化", 《中国知网》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107330024A (zh) * | 2017-06-21 | 2017-11-07 | 华为机器有限公司 | 标签系统数据的存储方法和装置 |
CN107330024B (zh) * | 2017-06-21 | 2020-10-09 | 华为机器有限公司 | 标签系统数据的存储方法和装置 |
CN108256115A (zh) * | 2017-09-05 | 2018-07-06 | 国家计算机网络与信息安全管理中心 | 一种面向SparkSql的HDFS小文件实时合并实现方法 |
CN108256115B (zh) * | 2017-09-05 | 2022-02-25 | 国家计算机网络与信息安全管理中心 | 一种面向SparkSql的HDFS小文件实时合并实现方法 |
WO2019179449A1 (zh) * | 2018-03-22 | 2019-09-26 | 中国银联股份有限公司 | 一种HBase表的Region合并方法、装置及计算机设备 |
US11372822B2 (en) | 2018-03-22 | 2022-06-28 | China Unionpay Co., Ltd. | Method, device, and computer apparatus for merging regions of HBase table |
CN109189798B (zh) * | 2018-09-30 | 2021-12-17 | 浙江百世技术有限公司 | 一种基于spark同步更新数据的方法 |
CN109189798A (zh) * | 2018-09-30 | 2019-01-11 | 浙江百世技术有限公司 | 一种基于spark同步更新数据的方法 |
CN109902067A (zh) * | 2019-02-15 | 2019-06-18 | 杭州数梦工场科技有限公司 | 文件处理方法、装置、存储介质及计算机设备 |
CN109902067B (zh) * | 2019-02-15 | 2020-11-27 | 杭州数梦工场科技有限公司 | 文件处理方法、装置、存储介质及计算机设备 |
CN110908788A (zh) * | 2019-12-02 | 2020-03-24 | 北京锐安科技有限公司 | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 |
CN110908788B (zh) * | 2019-12-02 | 2022-04-08 | 北京锐安科技有限公司 | 基于Spark Streaming的数据处理方法、装置、计算机设备及存储介质 |
CN113127548A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种文件合并的方法、装置、设备及存储介质 |
CN113127548B (zh) * | 2019-12-31 | 2023-10-31 | 奇安信科技集团股份有限公司 | 一种文件合并的方法、装置、设备及存储介质 |
CN112231293A (zh) * | 2020-09-14 | 2021-01-15 | 杭州数梦工场科技有限公司 | 文件读取方法、装置、电子设备和存储介质 |
CN113946289A (zh) * | 2021-09-23 | 2022-01-18 | 南京医基云医疗数据研究院有限公司 | 基于Spark计算引擎的文件合并方法及装置、存储介质、设备 |
CN117632860A (zh) * | 2024-01-25 | 2024-03-01 | 云粒智慧科技有限公司 | 基于Flink引擎的小文件合并方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843763A (zh) | 一种基于hdfs系统的文件合并方法及装置 | |
EP3254210B1 (en) | Big data statistics at data-block level | |
Hauglid et al. | DYFRAM: dynamic fragmentation and replica management in distributed database systems | |
CN102495857B (zh) | 一种分布式数据库的负载均衡方法 | |
US20160275094A1 (en) | Compaction policy | |
CN107491515B (zh) | 基于大数据平台的智能配用电数据转换方法 | |
US20150081964A1 (en) | Management apparatus and management method of computing system | |
CN110069219B (zh) | 一种数据存储方法、系统及电子设备和存储介质 | |
US20150261469A1 (en) | Storage system management apparatus and management method | |
US10061792B2 (en) | Tiered index management | |
CN103246616A (zh) | 一种长短周期访问频度的全局共享缓存替换方法 | |
CN102073697A (zh) | 一种数据处理方法及装置 | |
CN106469120A (zh) | 碎片整理方法、装置及设备 | |
CN109542907A (zh) | 数据库缓存构建方法、装置、计算机设备以及存储介质 | |
JP6707797B2 (ja) | データベース管理システム及びデータベース管理方法 | |
CN102214236A (zh) | 一种海量数据处理方法和系统 | |
CN109885642B (zh) | 面向全文检索的分级存储方法及装置 | |
CN104869140A (zh) | 多集群系统和控制多集群系统的数据存储的方法 | |
CN108536745A (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN103902592A (zh) | 基于MapReduce实现分析函数的方法及系统 | |
CN109885565A (zh) | 一种数据表清理方法和装置 | |
WO2015148418A1 (en) | Partition filtering using smart index in memory | |
JP6764175B2 (ja) | データベース管理システム、及び、データベース管理方法 | |
CN103353891B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |