CN109901978A - 一种Hadoop日志无损压缩方法和系统 - Google Patents
一种Hadoop日志无损压缩方法和系统 Download PDFInfo
- Publication number
- CN109901978A CN109901978A CN201711298672.5A CN201711298672A CN109901978A CN 109901978 A CN109901978 A CN 109901978A CN 201711298672 A CN201711298672 A CN 201711298672A CN 109901978 A CN109901978 A CN 109901978A
- Authority
- CN
- China
- Prior art keywords
- log
- line
- dictionary
- hadoop
- field
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种Hadoop日志无损压缩方法和系统,将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。大大减少了hadoop日志的存储空间,同时Hadoop日志文件增大对压缩、解压缩过程的耗时影响较小。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种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-05 13:56:52,670INFO org.mortbay.log:Registered SubjectTypeHOST
第二行:
2017-06-05 13:56:52,671INFO com.cloudera.cmon.TimeSeriesAttribute:Registered TimeSeriesAttribute hostId as HOSTID
判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;
若不是,则直接写入缓存。
执行步骤11、将日志文件中的日志信息逐行进行解析切分,获取日志字段;
上述日志信息被切分为:
第一行:
2017-06-05,13:56:52,670,INFO,org.mortbay.log:,
Registered SubjectType HOST
第二行:
2017-06-05,13:56:52,671,INFO,com.cloudera.cmon.TimeSeriesAttribute:,
Registered TimeSeriesAttribute hostId as HOSTID
执行步骤12、判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;
例如第一行日志,三张字典表都没有切分后的日志字段,
因此,2016-06-05加入字典data,表项序号为1,则格式为1 2016-06-05,
INFO加入字典level,表项序号为1,则格式为1level,
org.mortbay.log:加入字典name,表项序号为1,则格式为1org.mortbay.log:
第二行日志com.cloudera.cmon.TimeSeriesAttribute:,字典中没有找到,加入字典name中,表项序号为1,则格式为
2com.cloudera.cmon.TimeSeriesAttribute:,
判断所述日志字段是否在其对应类别的字典中,若判断结果为是,则直接提取其在所述字典中对应的表项序号进行编码;
例如第二行日志字典date中有2016-06-05,提取到序号值为1,level字典中有INFO,提取到值为1,
步骤13、逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。
具体地,用所述日志字段的表项序号替代所述日志字段,如上述两行日志被替换为:
1,13:56:52,670,1,1,Registered SubjectType HOST
1,13:56:52,671,1,2,Registered TimeSeriesAttribute hostId as HOSTID
接着将编码后的内容写入缓存;
当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。
具体地,判断文件是否最后一行;
若不是最后一行继续读入下一行内容;
若最后一行则先将字典写入文件头部,然后再写入缓存中的压缩内容。
当需要对所述压缩内容进行解码,根据所述日志字段的表项序号对所述压缩内容进行解码;
解压时首先读取相应的三张字典(date、level、name),并将其加载进入内存;
具体地,按行读入剩余文件;
判断读入的每一行是否符合日志消息格式;
若是,则根据字典将压缩后内容中的序号替换为其在字典中对应的内容;
写入解压缩文件;
否则直接将该行写入解压缩文件;
判断是否文件结束,未结束则继续读入下一行,
结束则解压完成。
实施例二
该实施例提供了一种Hadoop日志无损压缩系统,其具体实现结构如图2所示,具体可以包括如下的模块:
获取模块21:其用于将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;
判断模块22:其用于判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;
编码模块23:其用于逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。
本实施例的一种Hadoop日志无损压缩系统,还包括读取模块20,其用于预先将日志文件按行读取到内存中,
判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;
若不是,则直接写入缓存。
所述编码模块23具体用于:
当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。
本实施例的一种Hadoop日志无损压缩系统,还包括解码模块24,其用于根据所述日志字段的表项序号对所述压缩内容进行解码。
用本发明实施例的系统进行Hadoop日志无损压缩的资源管理的具体过程与前述方法实施例类似,此处不再赘述。
综上所述,本发明实施例通过将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。大大减少了hadoop日志的存储空间,同时Hadoop日志文件增大对压缩、解压缩过程的耗时影响较小。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种Hadoop日志无损压缩方法,其特征在于,包括:
将日志文件中的日志信息逐行进行解析切分,获取日志字段;
其中,不同的日志字段标识不同的类别;
判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;
逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。
2.根据权利要求1所述的一种Hadoop日志无损压缩方法,其特征在于,包括:
预先将日志文件按行读取到内存中,
判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;
若不是,则直接写入缓存。
3.根据权利要求2所述的一种Hadoop日志无损压缩方法,其特征在于,所述逐行提取字典中记录的所述日志字段的序号进行编码并写入缓存中的压缩内容,包括:
当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。
4.根据权利要求3所述的一种Hadoop日志无损压缩方法,其特征在于,包括:
根据所述日志字段的表项序号对所述压缩内容进行解码。
5.一种Hadoop日志无损压缩系统,其特征在于,包括:
获取模块:其用于将日志文件中的日志信息逐行进行解析切分,获取日志字段;其中,不同的日志字段标识不同的类别;
判断模块:其用于判断所述日志字段是否在其对应类别的字典中,若判断结果为否,则为所述日志字段分配其在所述字典中对应的表项序号,并存入其对应类别的字典;
编码模块:其用于逐行提取字典中记录的所述日志字段的表项序号进行编码并写入缓存中的压缩内容。
6.根据权利要求5所述的一种Hadoop日志无损压缩系统,其特征在于,包括:读取模块,其用于
预先将日志文件按行读取到内存中,
判断每一行中的数据是否为日志信息;若是,则对所述日志信息进行解析切分,获取日志字段;
若不是,则直接写入缓存。
7.根据权利要求6所述的一种Hadoop日志无损压缩系统,其特征在于,所述编码模块具体用于:
当对最后一行进行编码时,将字典写入文件头部,然后再写入缓存中的压缩内容。
8.根据权利要求7所述的一种Hadoop日志无损压缩系统,其特征在于,包括:解码模块,其用于根据所述日志字段的表项序号对所述压缩内容进行解码。
9.一种计算机设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器、通信接口;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,利用所述通信接口执行权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298672.5A CN109901978A (zh) | 2017-12-08 | 2017-12-08 | 一种Hadoop日志无损压缩方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298672.5A CN109901978A (zh) | 2017-12-08 | 2017-12-08 | 一种Hadoop日志无损压缩方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109901978A true CN109901978A (zh) | 2019-06-18 |
Family
ID=66940806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711298672.5A Pending CN109901978A (zh) | 2017-12-08 | 2017-12-08 | 一种Hadoop日志无损压缩方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109901978A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069254A (zh) * | 2020-08-21 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种基于Djangorestframework的日志记录方法及系统 |
CN112463542A (zh) * | 2020-12-15 | 2021-03-09 | 深圳供电局有限公司 | 日志异常原因诊断方法、装置、计算机设备和存储介质 |
CN112559458A (zh) * | 2020-12-11 | 2021-03-26 | 深圳金信诺高新技术股份有限公司 | 一种缩减日志大小的方法及系统 |
CN112749139A (zh) * | 2020-12-30 | 2021-05-04 | 咪咕文化科技有限公司 | 日志文件处理方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
CN104408100A (zh) * | 2014-11-19 | 2015-03-11 | 北京融海恒信咨询有限公司 | 结构化网站日志的压缩方法 |
US20160098342A1 (en) * | 2014-10-05 | 2016-04-07 | YScope Inc. | Systems and processes for computer log analysis |
CN106126383A (zh) * | 2016-06-01 | 2016-11-16 | 杭州华三通信技术有限公司 | 一种日志处理方法和装置 |
-
2017
- 2017-12-08 CN CN201711298672.5A patent/CN109901978A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103929321A (zh) * | 2013-01-15 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种日志处理方法和装置 |
US20160098342A1 (en) * | 2014-10-05 | 2016-04-07 | YScope Inc. | Systems and processes for computer log analysis |
CN104408100A (zh) * | 2014-11-19 | 2015-03-11 | 北京融海恒信咨询有限公司 | 结构化网站日志的压缩方法 |
CN106126383A (zh) * | 2016-06-01 | 2016-11-16 | 杭州华三通信技术有限公司 | 一种日志处理方法和装置 |
Non-Patent Citations (1)
Title |
---|
王煜骢: "Hadoop日志压缩算法的研究与实现", 《现代计算机(专业版)》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112069254A (zh) * | 2020-08-21 | 2020-12-11 | 苏州浪潮智能科技有限公司 | 一种基于Djangorestframework的日志记录方法及系统 |
CN112559458A (zh) * | 2020-12-11 | 2021-03-26 | 深圳金信诺高新技术股份有限公司 | 一种缩减日志大小的方法及系统 |
CN112559458B (zh) * | 2020-12-11 | 2021-11-30 | 深圳金信诺高新技术股份有限公司 | 一种缩减日志大小的方法及系统 |
CN112463542A (zh) * | 2020-12-15 | 2021-03-09 | 深圳供电局有限公司 | 日志异常原因诊断方法、装置、计算机设备和存储介质 |
CN112749139A (zh) * | 2020-12-30 | 2021-05-04 | 咪咕文化科技有限公司 | 日志文件处理方法、电子设备及存储介质 |
CN112749139B (zh) * | 2020-12-30 | 2024-04-19 | 咪咕文化科技有限公司 | 日志文件处理方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3161635B1 (en) | Machine learning service | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
US11100420B2 (en) | Input processing for machine learning | |
CN109901978A (zh) | 一种Hadoop日志无损压缩方法和系统 | |
US20150379430A1 (en) | Efficient duplicate detection for machine learning data sets | |
US11907659B2 (en) | Item recall method and system, electronic device and readable storage medium | |
CN103077192A (zh) | 一种数据处理方法及其系统 | |
US9563635B2 (en) | Automated recognition of patterns in a log file having unknown grammar | |
CN109271456A (zh) | 主机数据库文件导出方法及装置 | |
CN103336800A (zh) | 基于行为分析的指纹存储比对的方法 | |
US9286348B2 (en) | Dynamic search system | |
CN114185958B (zh) | 血缘关系生成方法、装置、计算机设备和存储介质 | |
US10867134B2 (en) | Method for generating text string dictionary, method for searching text string dictionary, and system for processing text string dictionary | |
JP2016076100A (ja) | ファイル分割システム及び方法 | |
CN114968725A (zh) | 任务依赖关系校正方法、装置、计算机设备及存储介质 | |
CN110378378B (zh) | 事件检索方法、装置、计算机设备及存储介质 | |
CN108763871B (zh) | 基于第三代测序序列的补洞方法及装置 | |
KR20150077669A (ko) | 맵리듀스 방식을 이용한 데이터 분석 방법 및 시스템 | |
CN111127057A (zh) | 一种多维用户画像恢复方法 | |
WO2018100700A1 (ja) | データ変換装置とデータ変換方法 | |
CN113836370B (zh) | 用户群体的分类方法、装置、存储介质及计算机设备 | |
Knigge et al. | Sentiment analysis on Twitter data using R algorithms | |
US10180955B1 (en) | Systems and methods for applying content-based retention policies to data artifacts | |
CN115858324A (zh) | 基于ai的it设备故障处理方法、装置、设备和介质 | |
JP2024518458A (ja) | テキスト内の自動トピック検出のシステム及び方法 |
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 |
Application publication date: 20190618 |
|
RJ01 | Rejection of invention patent application after publication |