一种文件处理方法及装置制造方法

文档序号:6637553阅读:168来源:国知局
一种文件处理方法及装置制造方法
【专利摘要】本发明提供了一种文件处理方法及装置,方法包括:获取多个日志文件的配置信息,配置信息包括日志文件的存储位置和存储级别,存储级别为根据日志文件的生成时间确定;根据存储级别将多个日志文件映射成文件组;当需要对日志文件进行分析时,根据设定的查找时间在不同存储级别的文件组中定位待分析的日志文件,并根据日志文件的存储位置获取待分析的日志文件。采用本发明所提供的技术方案,可以提高日志查找分析的速度,解决传统日志分析技术不能适应大数据日志文件处理的技术问题。
【专利说明】一种文件处理方法及装置

【技术领域】
[0001] 本发明涉及计算机【技术领域】,尤其涉及一种文件处理方法及装置。

【背景技术】
[0002] 随着大数据的蓬勃发展,各种大数据处理平台(如Had〇〇p、Xdata并行数据库系统 等等)应运而生、各种大数据处理中心拔地而起。这些系统往往在复杂的集群环境中运行, 这些运行中的系统都会生成日志信息,随着时间推移这些日志信息会堆积到一种难以想象 的程度。
[0003] 很多日志文件会存储在不同的节点、不同的文件系统,并在存储时部分日志文件 会进行压缩。因此,由于这些日志文件是异构存储的,如何对这些日志文件进行快速统一的 分析是迫切需要解决的问题。
[0004] 而目前普通的日志分析技术往往是对某些日志文件进行文本过滤,这种分析方式 存在如下问题:
[0005] 1)对压缩过的文件,或存储在其它文件系统、其他节点的日志文件无能为力;
[0006] 2)分析速度较慢,因为过滤过程要读取整个文件,这样也就不能处理较大较多的 日志信息。
[0007] 现有技术不足在于:
[0008] 传统的日志分析技术不能适应大数据、异构存储的日志文件处理,导致很多有意 义的日志信息不得不删除或存储起来但再也没有分析过。


【发明内容】

[0009] 本发明实施例提出了一种文件处理方法及装置,解决了传统日志分析技术不能适 应大数据日志文件处理的技术问题。
[0010] 本发明实施例提供了一种文件处理方法,包括如下步骤:
[0011] 获取多个日志文件的配置信息,该配置信息包括日志文件的存储位置和存储级 另IJ,存储级别为根据日志文件的生成时间确定;
[0012] 根据存储级别将多个日志文件映射成文件组;
[0013] 当需要对日志文件进行分析时,根据设定的查找时间在不同存储级别的文件组中 定位待分析的日志文件,根据日志文件的存储位置获取待分析的日志文件。
[0014] 本发明实施例提供了一种文件处理装置,包括:
[0015] 获取模块,用于获取多个日志文件的配置信息,该配置信息包括日志文件的存储 位置和存储级别,存储级别为根据日志文件的生成时间确定;
[0016] 文件组生成模块,用于根据存储级别将多个日志文件映射成文件组;
[0017] 分析模块,用于当需要对日志文件进行分析时,根据设定的查找时间在不同存储 级别的文件组中定位待分析的日志文件,根据日志文件的存储位置获取待分析的日志文 件。
[0018] 本发明实施例所提供的技术方案,通过获取多个日志文件的配置信息并根据存储 级别将这些日志文件映射成文件组,可以理解为将多个小文件映射成一个大文件,这样当 需要对日志文件进行分析时,就可以根据预先设定的查找时间在不同存储级别的文件组中 定位待分析的日志文件,进而根据日志文件的存储位置获取待分析的日志文件,采用本发 明实施例所提供的技术方案,在进行日志分析时,不需要读取所有日志文件,大大提高了分 析速度。

【专利附图】

【附图说明】
[0019] 下面将参照附图描述本发明的具体实施例,其中:
[0020] 图1示出了本发明实施例中文件处理方法实施的流程示意图;
[0021] 图2示出了本发明实施例中日志文件查找分析的流程示意图;
[0022] 图3示出了本发明实施例中文件处理装置的结构示意图。

【具体实施方式】
[0023] 为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性 实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是 所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互 相结合。
[0024] 本发明实施例提出了一种文件处理方法及装置。下面进行说明。
[0025] 图1示出了本发明实施例中文件处理方法实施的流程示意图,该文件处理方法可 以包括如下步骤:
[0026] 步骤101、获取多个日志文件的配置信息,该配置信息包括日志文件的存储位置和 存储级别,存储级别为根据日志文件的生成时间确定;
[0027] 步骤102、根据存储级别将多个日志文件映射成文件组;
[0028] 步骤103、当需要对日志文件进行分析时,根据设定的查找时间在不同存储级别的 文件组中定位待分析的日志文件,并根据日志文件的存储位置获取待分析的日志文件。
[0029] 本发明实施例将这些日志文件映射成一个大文件(相比多个日志文件来说)之 后,即可对这些日志文件进行查找分析;查找分析时,根据预设时间在不同存储级别的文件 组中定位待分析的日志文件,并根据日志文件的存储位置获取待分析的日志文件,从而大 大提高了日志分析速度。
[0030] 实施中,多个日志文件可以为存在一定关系的日志文件,也可以为异构存储的日 志文件。
[0031] 本发明实施例首先获取多个日志文件的配置信息,这些日志文件可以是彼此相关 的、或者是异构存储的。这里,异构存储是指一组相关的文件以不同的压缩方式、不同的文 件系统、或者在不同的节点上进行存储。其中,相关可以是通过预先定义具有一定规则的文 件名来确定,比如:warning (代表告警日志文件)、error (代表报错日志文件)等等,也可 以通过判断日志文件是否在同一目录下来确定是否相关,本发明对于文件相关的具体定义 不作限制。
[0032] 下面以一具体实例(包括三个日志文件)进行说明,具体的日志文件的配置信息 格式如下所示:
[0033] loga. dbl. compres = none
[0034] loga. dbl. path = /log/sdh/hdfs-namenode. log{,· [1-9]}
[0035] loga. dbl. order = opposite#上述文件路径扩展之后的多个文件的排列顺序
[0036] loga. dbl. filesystem = common
[0037] loga. db2. compres = zip
[0038] loga. db2. path = nodename :/bak/log/hdfs-namenode. log. I. zip
[0039] loga. db2. order = opposite#zip文件中包含的多个文件的排列顺序
[0040] loga. db2. filesystem = common
[0041] loga. db3. compres = none
[0042] loga. db3. path = /bak/log/hdfs-namenode. 201401. log{,· [1-9]}
[0043] loga. db3. order = opposite#上述文件路径扩展之后的多个文件的排列顺序
[0044] loga. db3. filesystem = hdfs
[0045] 上述内容表示一组名为loga的日志文件,它包含3个级别的存储,本发明实施例 中可以认为级别越高(例如上述内容中db3为最高级别)日志文件中包含的日志越久,其 访问花费的时间越长;相反的,级别越低(例如上述内容中dbl为最低级别)的日志文件越 是最近生成的日志。本发明实施例通过这样的规定方便读取和分析时的优化操作。
[0046] loga. dbl. path所指为日志文件的路径,loga. db2. path所指的路径为远程节点 上的文件;
[0047] loga. dbl. filesystem表示使用本节点的文件系统,它可能是挂载在本地的网 络文件系统(NFS,Network File System)或镜像文件(ISO,Isolation);而 loga. db3. filesystem表示文件存储在分布式文件系统(HDFS, Hadoop Distribute File System)上, 要通过HDFS的客户端库去访问,这个参数要求的内容是可扩充的,以适应支持新的文件系 统;
[0048] 文件路径path往往表示了一组文件,这些文件如何排列才能符合正确的时间顺 序是由order参数来指示,例如:loga. dbl. order表示的opposite (相反),是相对于文件 中存储的日志的顺序而言的;一般文件中日志的顺序是从小到大的,也即,从前向后阅读文 件,时间逐渐增大;而path路径下的文件安装字母排序后时间是从大到小的。
[0049] 实施中,将多个日志文件映射成文件组,可以包括:生成文件组对象,文件组对象 包括所有文件的配置信息以及每个存储级别的配置信息的开始存储位置;利用该文件组对 象根据每个存储级别的开始存储位置将不同存储级别的文件的配置信息映射成文件组。
[0050] 具体实施中,本发明实施例可以生成类FileGroup的对象,利用类FileGroup对象 将多个日志文件映射成文件组;
[0051] 其中,类FileGroup对象可以包括:
[0052] fileinfos,用于记录文件组中包含的所有文件的配置信息;
[0053] dbLevel,用于记录每个存储级别在fileinfos中开始的存储位置;
[0054] presentLevel,用于记录当前使用的存储的最大级别;
[0055] files,用于记录所有文件并形成文件列表;
[0056] nextDBLeve 1函数,用于对fiIeinf〇s中不同级别的文件的配置信息创建成Fi Ie对 象并加入到files中;
[0057] isALLDB函数,用于指示已经加入到files中的文件的位置。
[0058] 本发明实施例仅以上述类FileGroup对象作为示例,实际操作时本领域技术人员 可以根据需要进行相应开发即可,本发明对文件组对象的具体生成方式不作限制。
[0059] 本发明实施例中在获取到整个配置文件后,可以生成类FileGroup的一个对象, 下面示出了类FileGroup的统一建模语言(UML,Unified Modeling Language),如下表所 示:
[0060]

【权利要求】
1. 一种文件处理方法,其特征在于,包括如下步骤: 获取多个日志文件的配置信息,所述配置信息包括日志文件的存储位置和存储级别, 所述存储级别为根据日志文件的生成时间确定; 根据所述存储级别将所述多个日志文件映射成文件组; 当需要对日志文件进行分析时,根据设定的查找时间在不同存储级别的文件组中定位 待分析的日志文件,并根据所述日志文件的存储位置获取所述待分析的日志文件。
2. 如权利要求1所述的方法,其特征在于,所述将多个日志文件映射成文件组,具体包 括: 生成文件组对象,所述文件组对象包括所有文件的配置信息W及每个存储级别的配置 信息的开始存储位置; 利用所述文件组对象根据每个存储级别的开始存储位置将不同存储级别的文件的配 置信息映射成文件组。
3. 如权利要求1所述的方法,其特征在于,所述方法进一步包括: 将所述文件组内的日志文件映射成由若干条日志记录组成的日志组; 在不同存储级别的日志组中定位设定的查找时间内的日志文件。
4. 如权利要求3所述的方法,其特征在于,所述将所述文件组内的日志文件映射成由 若干条日志记录组成的日志组,包括: 根据seek函数来获取每条日志记录; 确定该日志记录的开始为时间字符串时,返回该日志记录的seek值。
5. 如权利要求1至4任一所述的方法,其特征在于,所述配置信息进一步包括日志文件 的文件顺序,所述文件组中的多个日志文件为有序排序;所述定位设定的查找时间内的日 志文件为采用二分查找方式进行定位。
6. -种文件处理装置,其特征在于,包括: 获取模块,用于获取多个日志文件的配置信息,所述配置信息包括日志文件的存储位 置和存储级别,所述存储级别为根据日志文件的生成时间确定; 文件组生成模块,用于根据所述存储级别将所述多个日志文件映射成文件组; 分析模块,用于当需要对日志文件进行分析时,根据设定的查找时间在不同存储级别 的文件组中定位待分析的日志文件,根据所述日志文件的存储位置获取所述待分析的日志 文件。
7. 如权利要求6所述的装置,其特征在于,所述文件组生成模块用于生成包括所有文 件的配置信息W及每个存储级别的配置信息的开始存储位置的文件组对象,利用所述文件 组对象根据每个存储级别的开始存储位置将不同存储级别的文件的配置信息映射成文件 组。
8. 如权利要求6所述的装置,其特征在于,进一步包括: 日志组生成模块,用于将所述文件组内的日志文件映射成由若干条日志记录组成的日 志组; 所述分析模块进一步用于在不同存储级别的日志组中定位设定的查找时间内的日志 文件。
9. 如权利要求8所述的装置,其特征在于,所述日志组生成模块用于根据seek函数来 获取每条日志记录;确定该日志记录的开始为时间字符串时,返回该日志记录的seek值。
10.如权利要求6至9任一所述的装置,其特征在于,所述获取模块进一步用于获取包 括日志文件的文件顺序的配置信息;所述文件组生成模块用于将多个日志文件映射成有序 排列的文件组;所述分析模块用于采用二分查找方式定位设定的查找时间内的日志文件。
【文档编号】G06F17/30GK104462349SQ201410738371
【公开日】2015年3月25日 申请日期:2014年12月5日 优先权日:2014年12月5日
【发明者】王少佳, 惠润海, 宋怀明 申请人:曙光信息产业(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1