离线小文件处理方法及装置制造方法及图纸

技术编号:17033062 阅读:23 留言:0更新日期:2018-01-13 19:29
本发明专利技术实施例公开了一种离线小文件处理方法及装置。所述方法包括:由HDFS中读取列式存储文件;提供进行数据处理指定的配置;对所述列式存储文件进行预处理及合并;按照指定的归并频率将执行预处理及合并后的所述列式存储文件归并为大文件。本发明专利技术实施例提供的离线小文件处理方法及装置能够有效的降低Hadoop系统中nameNode上内存的占用率。

【技术实现步骤摘要】
离线小文件处理方法及装置
本专利技术实施例涉及分布式计算
,尤其涉及一种离线小文件处理方法及装置。
技术介绍
对于大数据的离线分析工作,采取将流式数据转换成parquet列式存储格式文件方式,并结合spark-sql等技术手段进行离线分析。其中实时接入的流式数据,会从Kafka上获取并实时转换成parquet文件,采用HDFS文件系统方式进行存储,最后作为离线分析工具的源文件。Hadoop分布式文件系统(Hadoopdistributedfilesystem,HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统,具有高度容错、高吞吐量等特性,非常适合大规模数据集上的应用。但Hadoop的设计之初主要是面向流式处理的,对于处理大量远小于blocksize值的小文件时候,由于设计机制的问题,会出现响应速度大幅下降,严重影响性能,甚至导致无法正常运行的现象。由于数据来自各厂商、分光等实时接入数据,离线分析文件生成系统会对Kafka上的每条日志信息进行实时的文件转换工作,从而形成了大量的小文件供后续产品分析,与此同时,产生的大量远小于blocksize的小文件,大大影响了Hadoop存储的读取性能。
技术实现思路
针对上述技术问题,本专利技术实施例提供了一种离线小文件处理方法及装置,以提高Hadoop系统存储的读取性能,有效的降低Hadoop系统中nameNode上内存的占用率。一方面,本专利技术实施例提供了一种离线小文件处理方法,运行于Hadoop分布式处理系统上,所述方法包括:由HDFS中读取列式存储文件,其中,列式存储文件的大小小于预定的文件大小设定值;提供进行数据处理指定的配置;根据所述配置,基于Map-Reduce计算模型,对所述列式存储文件进行预处理及合并;基于Map-Reduce计算模型,按照指定的归并频率将执行预处理及合并后的所述列式存储文件归并为大文件。另一方面,本专利技术实施例还提供了一种离线小文件处理装置,集成在Hadoop分布式处理系统中,所述装置包括:读取模块,用于由HDFS中读取列式存储文件,其中,列式存储文件的大小小于预定的文件大小设定值;配置模块,用于提供进行数据处理指定的配置;预处理模块,用于根据所述配置,基于Map-Reduce计算模型,对所述列式存储文件进行预处理及合并;归并模块,用于基于Map-Reduce计算模型,按照指定的归并频率将执行预处理及合并后的所述列式存储文件归并为大文件。本专利技术实施例提供的离线小文件处理方法及装置,通过读取列式存储文件,提供进行数据处理执行的配置,对列式存储文件进行预处理及合并,以及按照指定的归并频率将执行预处理及合并后的列式存储文件归并为大文件,大大提高了Hadoop系统存储的读取性能,能够有效的降低Hadoop系统中nameNode上内存的占用率。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1是本专利技术第一实施例提供的离线小文件处理方法的流程示意图;图2是本专利技术第一实施例提供的运行离线小文件处理方法的系统的逻辑结构示意图;图3是本专利技术第二实施例提供的离线小文件处理方法的流程示意图;图4是本专利技术第三实施例提供的离线小文件处理方法中预处理的流程示意图;图5是本专利技术第四实施例提供的离线小文件处理方法中遗弃数据处理的流程示意图;图6是本专利技术第五实施例提供的离线小文件处理方法中文件归并的流程示意图;图7是本专利技术第六实施例提供的离线小文件处理装置的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。第一实施例本实施例提供了离线小文件处理方法的一种技术方案。在该技术方案中,离线小文件处理方法由离线小文件处理装置执行,并且,离线小文件处理装置通常集成在Hadoop分布式数据处理系统之中。参见图1,离线小文件处理方法包括:S11,由HDFS中读取列式存储文件。所谓列式存储,就是将同一个数据列的所有制存放在一起的存储方式。这种方式非常适合联机分析处理(OLAP),因为OLAP类型的查询往往只关心少量几个列,当字段数比较多且整个文件有几百万甚至数十亿行记录时,列式存储可以极大的减少扫描数据量,加快反馈速度。在本实施例中列式存储优选为parquet文件。Parquet文件可以为大数据生态系统中的服务提供高效的数据支持,且于编程语言、数据模型或数据框架都没有关系。而且,parquet文件能够被Hadoop系统所处理,Hive、Impala和SparkSQL都能直接查询以parquet文件为基础的数据仓库。这一特性使得parquet文件可以替代传统的文本文件类型。在本实施例中,被读取的parquet文件的大小均没有超出文件大小的上限。具体的,上述文件大小的上限为128MB。而且,Parquet文件的存储位置通常是在Hadoop系统中的DataNode上。系统读取源数据生产系统提供的parquet文件,为每个数据集的数据增加UniqueNum字段,用于根据配置的数据集唯一字段通过MD5算法计算该数据的唯一数据值,用于数据去重判断。为每个数据集的数据增加FIRST_COLLECT_TIME、LAST_COLLECT_TIME、TORL_FOUND_COUNTER、TOTAL_DAY_COUNTER字段,用于对数据去重时,计算重复数据出现的最早时间、最迟时间,总计发现次数、累计发现天数等统计数据。S12,提供进行数据处理指定的配置。在后续的文件合并、归并等数据处理中,数据处理需要按照指定的规则运行。另外,在数据处理中经常会使用一些处理参数。这些规则及处理参数将以配置的形式来提供。结合实际应用场景,该系统提供通过配置文件信息,进行数据筛选、数据唯一化指定的配置。该步骤需要用户根据配置信息模板,提供需要保留的数据集范围,数据集中数据的唯一标识信息等配置。S13,根据所述配置,基于Map-Reduce计算模型,对所述列式存储文件进行预处理及合并。在本实施例中,预处理及合并处理主要是指数据的筛选、去重、合并,以及存储目录结构的优化。筛选是指由海量的parquet小文件中,筛选出需要进行离线分析的文件。在本实施例中,小文件(Smallfiles,SF)是指文件总大小没有达到设定的文件大小上限的文件。优选的,上述上限的设定值是128MB。所谓去重是指对重复出现的数据记录进行去除,完全相同的数据记录仅保留其中一条记录的操作。具体的,去重操作是根据数据缓存数据量阈值(Databuffercount,DBC)以及数据缓存时长阈值(Databuffertime,DBT)而执行的。DBC是指同类别的数据,在运算时缓存数据量的最大阈值,系统默认设置为1000000条。DBT是指同类别的数据,在运算时一次缓存的时间段最大阈值,系统默认设置为5分钟。在内存中会根据数据集生成Map的键值对进行缓存,采用Queue格式保存数据队列,缓存的数据当达到DBC或者DBT时,开始进行当前类别数据的去重操作。所谓合并是指数据合并就是通本文档来自技高网...
离线小文件处理方法及装置

【技术保护点】
一种离线小文件处理方法,运行于Hadoop分布式处理系统上,其特征在于,包括:由HDFS中读取列式存储文件,其中,列式存储文件的大小小于预定的文件大小设定值;提供进行数据处理指定的配置;根据所述配置,基于Map‑Reduce计算模型,对所述列式存储文件进行预处理及合并;以及基于Map‑Reduce计算模型,按照指定的归并频率将执行预处理及合并后的所述列式存储文件归并为大文件。

【技术特征摘要】
1.一种离线小文件处理方法,运行于Hadoop分布式处理系统上,其特征在于,包括:由HDFS中读取列式存储文件,其中,列式存储文件的大小小于预定的文件大小设定值;提供进行数据处理指定的配置;根据所述配置,基于Map-Reduce计算模型,对所述列式存储文件进行预处理及合并;以及基于Map-Reduce计算模型,按照指定的归并频率将执行预处理及合并后的所述列式存储文件归并为大文件。2.根据权利要求1所述的方法,其特征在于,还包括:在对所述列式存储文件进行预处理及合并之后,基于Map-Reduce计算模型,对遗弃数据进行定期的压缩及恢复。3.根据权利要求1或2所述的方法,其特征在于,根据所述配置,基于Map-Reduce计算模型,对所述列式存储文件进行预处理及合并,包括:基于Map-Reduce计算模型,对列式存储文件的内容数据进行筛选;基于Map-Reduce计算模型,对列式存储文件的内容数据进行去重;基于Map-Reduce计算模型,对列式存储文件进行合并;以及基于Map-Reduce计算模型,对列式存储文件的存储目录结构进行优化。4.根据权利要求2所述的方法,其特征在于,基于Map-Reduce计算模型,对遗...

【专利技术属性】
技术研发人员:谢永恒李鑫火一莽万月亮
申请(专利权)人:北京锐安科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1