一种Hadoop日志无损压缩方法和系统技术方案

技术编号:21398708 阅读:24 留言:0更新日期:2019-06-19 06:55
本发明专利技术实施例提供了一种Hadoop日志无损压缩方法和系统,将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。大大减少了hadoop日志的存储空间,同时Hadoop日志文件增大对压缩、解压缩过程的耗时影响较小。

【技术实现步骤摘要】
一种Hadoop日志无损压缩方法和系统
本专利技术涉及通信
,尤其涉及一种Hadoop日志无损压缩方法和系统。
技术介绍
Hadoop作为目前较为流行的分布式计算框架,已被广泛地应用于大数据处理。为了方便用户使用及调试,Hadoop会将其自身的运行状况以日志的形式写入磁盘,主要包括:各类守护进程的运行日志、MapReduce、Spark作业的运行日志等。随着Hadoop集群规模增大及其使用时间的增长,日志的产生量会急剧增加,从而对磁盘存储造成极大的压力。为了追溯系统运行问题,或者作业运行问题,追溯问题原因时只能通过所存储的日志来分析解决,因此日志对于系统和用户问题的分析和定位起着至关重要的作用,同时也能提供审计的依据。为解决Hadoop日志过大的问题,本专利技术对Hadoop的日志结构进行了分析,并根据其特点,设计并实现了一种高效的无损压缩算法,对日志进行压缩以节省存储资源,同时保证解压缩过程的高速性。
技术实现思路
本专利技术的实施例提供了一种Hadoop日志无损压缩方法和系统,本专利技术提供了如下方案:将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。根据本专利技术的上述方法,包括:预先将日志文件按行读取到内存中,判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;若不是,则直接写入缓存。根据本专利技术的上述方法,所述逐行提取字典中记录的所述日志字段的序号进行编码并写入缓存中的压缩内容,包括:当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。根据本专利技术的上述方法,包括:根据所述日志字段的表项序号对所述压缩内容进行解码。根据本专利技术的另一方面,还提供一种Hadoop日志无损压缩系统,包括:获取模块:其用于将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断模块:其用于判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;编码模块:其用于逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。根据本专利技术的另一方面,还提供一种Hadoop日志无损压缩系统,包括:读取模块,其用于预先将日志文件按行读取到内存中,判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;若不是,则直接写入缓存。根据本专利技术的另一方面,所述编码模块具体用于:当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。根据本专利技术的另一方面,还包括:解码模块,其用于根据所述日志字段的表项序号对所述压缩内容进行解码。根据本专利技术的另一方面,还提供一种计算机设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器、通信接口;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行上述的方法。根据本专利技术的另一方面,还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述的方法。由上述本专利技术的实施例提供的技术方案可以看出,本专利技术实施例将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。大大减少了hadoop日志的存储空间,同时Hadoop日志文件增大对压缩、解压缩过程的耗时影响较小。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例一提供的一种Hadoop日志无损压缩方法的处理流程图;图2为本专利技术实施例二提供的一种Hadoop日志无损压缩系统的系统模块图。具体实施方式为便于对本专利技术实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本专利技术实施例的限定。实施例一Hadoop日志信息通过Log4j产生,其具体格式为%d%p%c:%m%n,具体参数说明如下:%d:日志时间点的日期时间,%p:级别,包括:TRACE,DEBUG,INFO,WARN,ERROR,FATAL;%c:所属的类,通常为所在类全名;%m:代码中输出的信息。由此可知,Hadoop日志信息的具体结构如下:日志产生时间+空格+级别+空格+所在类全名+冒号+空格+代码输出信息+回车换行符;因此本专利技术的实施例中,预先将日志文件按行读取到内存中,判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;若不是,则直接写入缓存。本实施例中,将该日志信息切分为4部分:存放日志的产生时间、存放日志的级别以及存放所在类别的名称、代码输出信息。本实施例中,预先分别建立存放日志的产生时间、存放日志的级别以及存放所在类别的名称的三张字典;其中,每张字典建立一个用于索引的表项序号;本实施例中,存放日志的产生时间的字典命名为data、存放日志的级别的字典命名为level、存放所在类别的名称的字典命名为name;该实施例提供了一种Hadoop日志无损压缩方法的处理流程如图1所示,其处理步骤如下:步骤11、将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;步骤12、判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;步骤13、逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。具体地,所述逐行提取字典中记录的所述日志字段的序号进行编码并写入缓存中的压缩内容,包括:当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。此外,在对压缩内容进行解码时,根据所述日志字段的表项序号对所述压缩内容进行解码。在本专利技术中,具体给出如下示例来说明;首先将日志文件读入到内存中,按行读取每一条日志,具体例如下面两行日志记录:第一行:2017-06-0513:56:52,670INFOorg.mortbay.log:RegisteredSubjectTypeHOST第二行:2017-06-0513:56:52,671INFOcom.cloudera.cmon.TimeSeriesAttribute:RegisteredTimeSeriesAttributehostIdasHOSTID判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;若本文档来自技高网...

【技术保护点】
1.一种Hadoop日志无损压缩方法,其特征在于,包括:将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。

【技术特征摘要】
1.一种Hadoop日志无损压缩方法,其特征在于,包括:将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。2.根据权利要求1所述的一种Hadoop日志无损压缩方法,其特征在于,包括:预先将日志文件按行读取到内存中,判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;若不是,则直接写入缓存。3.根据权利要求2所述的一种Hadoop日志无损压缩方法,其特征在于,所述逐行提取字典中记录的所述日志字段的序号进行编码并写入缓存中的压缩内容,包括:当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。4.根据权利要求3所述的一种Hadoop日志无损压缩方法,其特征在于,包括:根据所述日志字段的表项序号对所述压缩内容进行解码。5.一种Hadoop日志无损压缩系统,其特征在于,包括:获取模块:其用于将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断模块:其用于判断所述日志字段是否在其对应类别的字典中,若判...

【专利技术属性】
技术研发人员:王杰斌林文辉
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:北京,11

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

1