文件处理方法和系统的利记博彩app

文档序号:10594082阅读:357来源:国知局
文件处理方法和系统的利记博彩app
【专利摘要】本发明公开了一种文件处理方法和系统。该文件处理方法包括:获取日志文件,其中,所述日志文件用于传送到多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;以及由多个设备集合中的第一设备集合对日志文件进行第一设备集合所对应的解析操作,并由多个设备集合中的非第一设备集合对前一设备集合的操作结果进行非第一设备集合所对应的解析操作,以获得日志文件的解析结果。上述文件处理方法和系统,利用类似流水线的方式在多个设备集合中进行与日志文件相关的处理,可以有效提高日志文件的处理效率。
【专利说明】
文件处理方法和系统
技术领域
[0001 ]本发明涉及计算机技术领域,具体涉及一种文件处理方法和系统。
【背景技术】
[0002]随着计算机技术的飞速发展,在某些应用领域,每天会产生大量的日志文件。这些日志文件被收集并存储在数据存储系统中,例如分布式文件系统(HDFS)。日志文件通常是压缩格式的文件。可以利用文件处理设备不断地从数据存储系统中下载日志文件,对所下载的日志文件进行解压缩、统一编码等基本处理。然后,可以将处理后的日志文件存储到数据库中,并且可以对日志文件进行分析,例如可以分析与某个应用相关的日志文件以确定该应用启动时需要调用多少进程、该应用每天弹出多少广告等。当用户对某个应用的运行情况进行查询时,可以将与该应用相关的日志分析结果反馈给用户以供其查看。
[0003]在现有技术中,日志文件的下载、解压缩、统一编码等操作通常在同一文件处理设备上顺序完成,因此如果某一环节的操作出现问题,会导致日志文件的整体处理速度变慢甚至停滞。实际上,文件处理设备每天需要收集处理的日志文件的数据量可能非常大,例如可能多达60太字节(TB),因此文件处理设备的处理速度过慢可能造成大量日志文件处理的积压。

【发明内容】

[0004]鉴于上述问题,提出了本发明以便提供一种至少部分地解决上述问题的文件处理方法和系统。
[0005]根据本发明的一个方面,提供一种文件处理方法。该文件处理方法包括:获取日志文件,其中,所述日志文件用于传送到多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;以及由多个设备集合中的第一设备集合对日志文件进行第一设备集合所对应的解析操作,并由多个设备集合中的非第一设备集合对前一设备集合的操作结果进行非第一设备集合所对应的解析操作,以获得日志文件的解析结果。
[0006]根据本发明的另一个方面,提供一种文件处理系统。该文件处理系统包括前级装置和多个设备集合。前级装置用于获取日志文件,其中,所述日志文件用于传送到多个设备集合中的第一设备集合,多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;多个设备集合中的第一设备集合用于对日志文件进行第一设备集合所对应的解析操作,并且多个设备集合中的非第一设备集合用于对前一设备集合的操作结果进行非第一设备集合所对应的解析操作,以获得日志文件的解析结果。
[0007]根据本发明实施例的文件处理方法和系统,利用类似流水线的方式在多个设备集合中进行与日志文件相关的处理,可以有效提高日志文件的处理效率。
[0008]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。【附图说明】
[0009]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0010]图1示出根据本发明一个实施例的文件处理方法的流程示意图;
[0011]图2示出根据本发明一个实施例的与日志文件相关的处理流程的示意图;
[0012]图3示出根据本发明另一个实施例的文件处理方法的流程示意图;以及
[0013]图4示出根据本发明一个实施例的文件处理系统的示意性框图。【具体实施方式】
[0014]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0015]根据本发明的一个方面,提供一种文件处理方法。图1示出根据本发明一个实施例的文件处理方法100的流程示意图。
[0016]如图1所示,文件处理方法100包括以下步骤。
[0017]在步骤S110,获取日志文件,其中,所述日志文件用于传送到多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作。 [〇〇18]日志文件可以是任何合适的需要处理的记录文件或文件集合,例如,其可以是操作系统的日志文件,数据库系统的日志文件,等等。日志文件可以与任何合适的应用相关, 例如其可以与诸如微博等的应用相关。
[0019]日志文件可以从诸如HDFS的数据存储系统中下载。然后,日志文件可以传送到多个设备集合中的第一设备集合。
[0020]多个设备集合中的每个设备集合可以包括一个或多个设备。设备可以是能够处理日志文件的任何合适的硬件设备,例如服务器等。
[0021]多个设备集合可以是顺序连接的,每个设备集合用于进行一种或多种解析操作, 不同设备集合进行不同的解析操作。另外,可以理解的是,当某设备集合包括多个设备时, 多个设备中的每个设备可以进行相同的解析操作,即该设备集合所对应的解析操作。日志文件或前一设备集合的操作结果可以进入多个设备中的任一设备以进行对应的解析操作。
[0022]在步骤S120,由多个设备集合中的第一设备集合对日志文件进行第一设备集合所对应的解析操作,并由多个设备集合中的非第一设备集合对前一设备集合的操作结果进行非第一设备集合所对应的解析操作,以获得日志文件的解析结果。
[0023]解析操作可以是例如解压缩操作、统一编码操作、分割操作等,这一系列操作的目的主要是为了对日志文件的内容进行解析。例如,多个设备集合所输出的解析结果可以是日志文件中的每行数据。[〇〇24]多个设备集合组成一种流水线式的处理系统,在日志文件进入第一设备集合之后,经过多个设备集合所进行的一连串的解析操作,可以获得该日志文件的解析结果。
[0025]由于将解析操作分开在不同的设备集合中进行,因此当整个处理过程中的某一解析操作出现问题时,仍然可以进行其他解析操作。例如,假设用于统一编码操作的设备集合出现问题,编码速度比较慢,则用于解压缩操作的设备集合仍然可以对日志文件进行解压缩而不会受到影响。特别是,在某设备集合包括多个设备的情况下,该设备集合中的多个设备可以相互协助,例如当某个设备出现问题时,其他设备可以分担原本由该设备负责处理的日志文件或前一设备集合的操作结果。因此,通过上述方法可以有效提高日志文件的处理效率,避免因某一设备集合或设备集合中的设备出现问题而导致的日志文件的积压。
[0026]根据本发明实施例的文件处理方法,利用类似流水线的方式在多个设备集合中进行与日志文件相关的处理,可以有效提高日志文件的处理效率。
[0027]根据本发明实施例,步骤SllO可以进一步包括:将日志文件下载到消息队列中;在步骤S120之前,文件处理方法100可以进一步包括:由第一设备集合利用消费者程序从消息队列中消费日志文件。
[0028]图2示出根据本发明一个实施例的与日志文件相关的处理流程的示意图。参考图2,示出数据存储系统包括四个分布式文件系统210,分别用HDFS1、HDFS2、HDFS3和HDFS4表示,并且还示出多个设备集合中的第一设备集合220和非第一设备集合230和240以及消息队列250。在图2中,第一设备集合220包括m个设备,分别用D1_1、D1_2……Dl_m表示,非第一设备集合230包括η个设备,分别用D2_1、D2_2……D2_n表示,非第一设备集合240包括k个设备,分别用Di_l、Di_2……Di_k表示。
[0029]可以理解,图2所示的HDFS的数目、设备集合的数目以及设备集合中所包括的设备的数目均为示例而非限制,HDFS、设备集合以及设备集合中所包括的设备均可以具有任何其他合适的数目。另外,图2所示的设备与设备之间的连接关系是示意性的,设备可以以任何合适的方式连接和传输数据。
[0030]参考图2,HDFS1、HDFS2、HDFS3和HDFS4中存储的日志文件可以下载到消息队列250,第一设备集合220中的设备可以利用消费者程序从消息队列250中消费日志文件。
[0031]应当理解,消息队列也可以存储在特定设备集合中,日志文件的下载也可以归类为日志文件的一种解析操作。消息队列提供异步处理机制,其可以起到削峰填谷的作用,因此采用消息队列存储日志文件可以缓解日志文件的处理压力。
[0032]根据本发明实施例,在将日志文件下载到消息队列中之前,文件处理方法100可以进一步包括:建立多个分布式文件系统与消息队列的连接;所述将日志文件下载到消息队列中可以进一步包括:将日志文件从多个分布式文件系统中的第一特定分布式文件系统下载到消息队列中。
[0033]日志文件可以来自多个HDFS中的任何一者。也就是说,可以利用多个HDFS存储日志文件,然后将日志文件下载到消息队列中。如图2所示,在将日志文件下载到消息队列250中之前,可以建立HDFS1、HDFS2、HDFS3和HFDS4与消息队列250的连接。建立连接之后,可以从HDFS1、HDFS2、HDFS3和HFDS4之一(即第一特定HDFS)下载日志文件。
[0034]根据本发明实施例,多个分布式文件系统中的每一个可以具有针对该分布式文件系统的协程,所述将日志文件下载到消息队列中可以进一步包括:利用针对第一特定分布式文件系统的协程轮询第一特定分布式文件系统,以从第一特定分布式文件系统中下载日志文件。
[0035]可以为每个HDFS分配适量协程,利用所分配的协程处理与对应的HDFS相关的任务,例如轮询对应的HDFS并从对应的HDFS下载日志文件。假设为图2所示的HDFS1、HDFS2、 HDFS3和HFDS4中的每一个分配10个协程,并且第一特定HDFS为HDFS3,则可以利用分配给 HDFS3的10个协程不断轮询HDFS3,以从HDFS3下载日志文件到消息队列中。
[0036]线程需要由操作系统通过切换上下文的方式来调度,消耗资源较多。与线程相比, 协程相对比较独立,可以由程序员进行调度,因此可以避免无意义的系统调度。因此,采用协程处理日志文件可以进一步提高文件处理效率和性能。
[0037]根据本发明实施例,对于多个分布式文件系统,针对不同的分布式文件系统的协程经由不同的网络路径轮询对应的分布式文件系统。[〇〇38] 示例性地,多个HDFS可以布置于不同的机房。例如,图2所示的HDFS1和HDFS2可以分别布置于上海机房和北京机房,上海机房的HDFS1用于存储与上海用户相关的日志文件, 北京机房的HDFS2用于存储与北京用户相关的日志文件。[〇〇39] HDFS 1与消息队列2 50经由网络路径260连接和通信,分配给HDFS 1的协程可以经由该网络路径260轮询HDFS 1并从HDFS 1中下载日志文件。类似地,HDFS2与消息队列250经由网络路径270连接和通信,分配给HDFS2的协程可以经由该网络路径270轮询HDFS2并从HDFS2 中下载日志文件。由于北京机房和上海机房具有不同的互联网协议(IP)地址,因此网络路径260与网络路径270不同。[〇〇4〇]由于HDFS分别处于不同的位置,对不同HDFS的访问需要经由不同的网络路径,因此当某一 HDFS所对应的网络路径出现问题,例如网速特别缓慢时,不会影响对其他HDFS中所存储的日志文件的处理。
[0041]根据本发明实施例,文件处理方法100可以进一步包括:当尝试建立多个分布式文件系统中的第二特定分布式文件系统与消息队列的连接的次数超过次数阈值时,获取多个分布式文件系统的配置信息,其中,所述配置信息包括每个分布式文件系统的权重;如果第二特定分布式文件系统不是权重最大的分布式文件系统,则将针对第二特定分布式文件系统的协程分配给权重最大的分布式文件系统。[〇〇42]可以预先存储HDFS的配置信息。配置信息可以包括每个HDFS的权重。权重是预先设置的,例如可以根据每个HDFS所存储的日志文件的日平均数据量为每个HDFS设置权重。 例如,HDFS的日平均数据量越大,说明其负担越重,因此所设置的权重可以越高。权重可以用于帮助确定协程的分配。如果尝试建立第二特定HDFS与消息队列的连接的次数超过次数阈值时,可以根据配置信息确定权重最大的HDFS,并将针对第二特定HDFS的协程分配给权重最大的HDFS。次数阈值可以是任何合适的值。可以理解,当第二特定HDFS是权重最大的 HDFS时,可以不重新分配针对第二特定HDFS的协程。[〇〇43]继续参考图2,假设HDFS2由于某些原因(例如网速慢,设备故障等)导致无法成功与消息队列250建立连接,也就是说当尝试建立HDFS2与消息队列250之间的连接时,尝试次数超过次数阈值或尝试时间超过时间阈值,则可以认为HDFS2与消息队列250的连接失败。 在这种情况下,为了平衡和节约计算资源,可以将原本分配给HDFS2的协程分配给其他需要的HDFS。例如,假设配置信息中指示权重最大的HDFS为HDFS4,在图2所示的HDFS中,HDFS4的负担最重,压力最大,因此可以将原本分配给HDFS2的10个协程分配给HDFS4,以与原本分配给HDFS4的10个协程一起处理HDFS4中的日志文件。这种方式通过协程的再分配实现计算资源的合理利用,可以进一步提高日志文件的处理效率。
[0044]根据本发明实施例,所述第一设备集合可以包括第一子设备集合,所述非第一设备集合可以包括第二子设备集合、第三子设备集合和第四子设备集合,步骤S120可以进一步包括:由第一子设备集合对日志文件进行解压缩;由第二子设备集合对解压缩后的日志文件进行统一编码;由第三子设备集合将编码后的日志文件分发到第四子设备集合中的多个数据通道之一;以及由第四子设备集合在所分发的数据通道中对编码后的日志文件进行分割,以获得日志文件的解析结果。
[0045]多个设备集合可以包括四个子设备集合,每个子设备集合执行一种解析操作,分别是解压缩、统一编码、分发和分割。如上文所述,日志文件通常是压缩格式的文件,因此可以首先将已获取的、待处理的日志文件进行解压缩,获得经解压缩的日志文件。参考图2,假设第一设备集合220是第一子设备集合,非第一设备集合230和240分别是第二子设备集合和第四子设备集合,第三子设备集合未示出,其中,由第一子设备集合220执行日志文件的解压缩,由第二子设备集合230对解压缩后的日志文件进行统一编码,由第三子设备集合将编码后的日志文件分发到第四子设备集合240中的多个数据通道之一,由第四子设备集合240在所分发的数据通道中对编码后的日志文件进行分割,第四子设备集合240输出的是日志文件的解析结果。
[0046]示例性地,第四子设备集合240中的数据通道可以与第四子设备集合240中的设备Di_l、Di_2……Di_k—一对应,也就是说,第四子设备集合240可以具有k个数据通道,分别位于第四子设备集合240中的k个设备上。当然,可以理解,数据通道的这种分布方式仅是示例而非限制,第四子设备集合240中的每个设备可以具有其他合适数目的数据通道。
[0047]可以利用数据通道对编码后的日志文件进行分割,在编码后的日志文件进入数据通道之后,可以以数据行为单位进行分割,以获得日志文件的每行数据。通过这种方式,可以分析出日志文件的具体内容。
[0048]对于某日志文件来说,其可以传入第一子设备集合220中的设备D1_1、D1_2……Dl_m中的任一设备并由该设备进行解压缩。类似地,对于第二子设备集合230、第三子设备集合和第四子设备集合240来说,可以采用每个子设备集合中的任一设备进行对应的解析操作,不再赘述。
[0049]图3示出根据本发明另一个实施例的文件处理方法300的流程示意图。图3所示的文件处理方法300的步骤S310和S320分别与图1所示的文件处理方法100的步骤SllO和S120相对应。本领域技术人员根据图1和上文的描述可以理解图3中的上述步骤S310和S320,为了简洁,在此不再赘述。根据本实施例,文件处理方法300可以进一步包括以下步骤。
[0050]在步骤S330,将日志文件的解析结果写入数据库。
[0051]数据库可以存储于任何合适的位置。多个设备集合中的最后设备集合(如图2所示的设备集合240)可以与数据库通信,以将最后设备集合输出的日志文件的解析结果写入数据库。
[0052]在步骤S340,对数据库中存储的解析结果的至少一部分进行分析,以获得分析数据。
[0053]数据库可以存储一段时间内生成的日志文件的解析结果,对这些解析结果中的至少一部分进行分析,可以获得分析数据。例如,可能期望获知与某应用(例如微博)相关的一些统计数据,诸如该应用启动时需要调用多少进程、该应用每天弹出多少广告、该应用的用户的关注热点是什么,该应用新增多少用户等等,在这种情况下,可以对与该应用相关的日志文件的解析结果进行统计分析,以得到期望获知的信息。
[0054]根据本发明实施例,文件处理方法300可以进一步包括:输出分析数据,以供用户查看。
[0055]当用户期望对某个应用的运行情况进行查询时,可以将与该应用相关的日志文件的分析数据反馈给用户以供其查看。例如,可以经由显示屏或扬声器等输出装置将分析数据输出。
[0056]根据本发明的另一方面,提供一种文件处理系统。图4示出根据本发明一个实施例的文件处理系统的示意性框图。如图4所示,文件处理系统400包括前级装置410和多个设备集合420。[〇〇57]所述前级装置410用于获取日志文件,其中,所述日志文件用于传送到多个设备集合420中的第一设备集合,所述多个设备集合420顺序连接并且不同设备集合用于进行不同的解析操作。[〇〇58]所述多个设备集合420中的第一设备集合用于对日志文件进行第一设备集合所对应的解析操作,并且多个设备集合420中的非第一设备集合用于对前一设备集合的操作结果进行非第一设备集合所对应的解析操作,以获得日志文件的解析结果。[〇〇59]前级装置410可以与用于存储日志文件的数据存储系统直接或间接地通信,以从数据存储系统中获取日志文件。前级装置410可以采用任何合适的硬件、软件和/或固件实现。
[0060]前级装置410可以与多个设备集合420中的第一设备集合直接或间接地通信。日志文件可以从前级装置410传送到多个设备集合420中的第一设备集合。多个设备集合420中的每个设备集合可以包括一个或多个设备。多个设备集合420中的设备可以采用任何合适的硬件、软件和/或固件实现。示例性地,多个设备集合420可以位于同一机房中,或者分布式地位于不同的机房中。多个设备集合420形成一种类似流水线的处理架构,不同的设备集合执行不同的解析操作,而每个设备集合中的一个或多个设备可以执行相同的解析操作。
[0061]多个设备集合420中的设备的配置情况可以根据需要进行调整。例如,可能随着某应用的发展,使用该应用的用户增多,每日需要处理的与该应用相关的日志文件的数据量增大,使得已有的文件处理系统难以及时处理每日生成的日志文件,在这种情况下,可以增加至少部分设备集合中的设备的数目或者将至少部分设备集合中的至少部分设备更换为性能更好的设备,这样可以非常方便地提高整个文件处理系统的处理性能。
[0062]根据本发明实施例的文件处理系统,利用类似流水线的方式在多个设备集合中进行与日志文件相关的处理,可以有效提高日志文件的处理效率。[〇〇63]示例性地,前级装置410可以进一步用于将日志文件下载到消息队列中。第一设备集合可以进一步用于利用消费者程序从消息队列中消费日志文件。消息队列可以存储于前级装置410中,前级装置410可以从数据存储系统中下载日志文件到消息队列。进一步地,第一设备集合可以作为消息队列的消费者从消息队列中下载日志文件。
[0064]示例性地,前级装置410可以进一步用于建立多个分布式文件系统与消息队列的连接,并且将日志文件从多个分布式文件系统中的第一特定分布式文件系统下载到消息队列中。
[0065]数据存储系统可以采用HDFS实现。前级装置410可以经由有线或无线网络建立多个HDFS与消息队列之间的连接,并可以从多个HDFS中的任何一者下载日志文件到消息队列中。
[0066]7]^;例性地,多个分布式文件系统中的每一个具有针对该分布式文件系统的协程,前级装置410可以进一步用于利用针对第一特定分布式文件系统的协程轮询第一特定分布式文件系统,以从第一特定分布式文件系统中下载日志文件。
[0067]前级装置410可以利用协程轮询第一特定HDFS并从第一特定HDFS中下载日志文件。采用协程处理日志文件可以进一步提高文件处理系统的文件处理效率和性能。
[0068]示例性地,对于多个分布式文件系统,针对不同的分布式文件系统的协程经由不同的网络路径轮询对应的分布式文件系统。
[0069]如上文所述,多个HDFS可以布置于不同的机房。机房具有不同的IP地址,因此针对不同HDFS的协程可以经由不同的网络路径轮询对应的HDFS。
[0070]示例性地,前级装置410可以进一步用于当尝试建立多个分布式文件系统中的第二特定分布式文件系统与消息队列的连接的次数超过次数阈值时,获取多个分布式文件系统的配置信息,并且如果第二特定分布式文件系统不是权重最大的分布式文件系统,则将针对第二特定分布式文件系统的协程分配给权重最大的分布式文件系统,其中,配置信息包括每个分布式文件系统的权重。
[0071 ]可以预先为每个HDFS分配权重,权重包括在配置信息中。示例性地,可以将配置信息存储在前级装置410中,或者也可以将配置信息存储在单独的存储装置中,前级装置410可以与存储装置通信以从存储装置中获取配置信息。当前级装置410尝试建立某HDFS与消息队列的连接时,如果尝试次数超过次数阈值,则可以将原本分配给该HDFS的协程重新分配给权重最大的HDFS,以实现计算资源的合理利用。
[0072]示例性地,第一设备集合可以包括第一子设备集合,非第一设备集合可以包括第二子设备集合、第三子设备集合和第四子设备集合,其中,第一子设备集合用于对日志文件进行解压缩;第二子设备集合用于对解压缩后的日志文件进行统一编码;第三子设备集合用于将编码后的日志文件分发到第四子设备集合中的多个数据通道之一;第四子设备集合用于在所分发的数据通道中对编码后的日志文件进行分割,以获得日志文件的解析结果。
[0073]如上文所述,多个设备集合420可以包括四个子设备集合,每个子设备集合执行一种解析操作,分别是解压缩、统一编码、分发和分割。通过这些解析操作,可以分析出日志文件的具体内容。
[0074]示例性地,文件处理系统400可以进一步包括文件分析装置(未示出),用于将日志文件的解析结果写入数据库,并且对数据库中存储的解析结果的至少一部分进行分析,以获得分析数据。
[0075]如上文所述,数据库可以存储于任何合适的位置。多个设备集合中的最后设备集合可以与数据库通信,以将最后设备集合输出的日志文件的解析结果写入数据库。可以使用数据库来存储和管理日志文件的解析结果。
[0076]示例性地,文件处理系统400可以进一步包括输出装置(未示出),用于输出分析数据,以供用户查看。输出装置可以是任何合适的能够向用户输出信息的装置,例如显示屏或扬声器等。示例性地,当接收到用户对某应用的查询请求时,可以经由输出装置将与该应用相关的日志文件的分析数据反馈给用户以供其查看。
[0077]上文已经描述了文件处理方法的各步骤的实施方式和优点等,本领域技术人员结合图1至3以及上文关于文件处理方法的描述,可以理解文件处理系统400的具体结构、运行方式及其优点等,本文不再对此进行赘述。
[0078]在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0079]在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0080]类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循【具体实施方式】的权利要求书由此明确地并入该【具体实施方式】,其中每个权利要求本身都作为本发明的单独实施例。
[0081]本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0082]此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0083]本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件处理系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0084] 应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。[〇〇85]本发明实施例公开了 A1、一种文件处理方法,包括:
[0086]获取日志文件,其中,所述日志文件用于传送到所述多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;以及 [〇〇87]由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作,以获得所述日志文件的解析结果。[〇〇88]A2、如A1所述的文件处理方法,[〇〇89]所述获取日志文件进一步包括:
[0090]将所述日志文件下载到消息队列中;
[0091]在所述由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作之前,所述文件处理方法进一步包括:
[0092]由所述第一设备集合利用消费者程序从所述消息队列中消费所述日志文件。[〇〇93]A3、如A2所述的文件处理方法,[〇〇94]在所述将所述日志文件下载到消息队列中之前,所述文件处理方法进一步包括:
[0095]建立多个分布式文件系统与所述消息队列的连接;
[0096]所述将所述日志文件下载到消息队列中进一步包括:[〇〇97]将所述日志文件从所述多个分布式文件系统中的第一特定分布式文件系统下载到所述消息队列中。[〇〇98]A4、如A3所述的文件处理方法,所述多个分布式文件系统中的每一个具有针对该分布式文件系统的协程,
[0099]所述将所述日志文件下载到消息队列中进一步包括:
[0100]利用针对所述第一特定分布式文件系统的协程轮询所述第一特定分布式文件系统,以从所述第一特定分布式文件系统中下载所述日志文件。
[0101]A5、如A4所述的文件处理方法,对于所述多个分布式文件系统,针对不同的分布式文件系统的协程经由不同的网络路径轮询对应的分布式文件系统。
[0102]A6、如A4或A5所述的文件处理方法,所述文件处理方法进一步包括:
[0103]当尝试建立所述多个分布式文件系统中的第二特定分布式文件系统与所述消息队列的连接的次数超过次数阈值时,获取所述多个分布式文件系统的配置信息,其中,所述配置信息包括每个分布式文件系统的权重;
[0104]如果所述第二特定分布式文件系统不是权重最大的分布式文件系统,则将针对所述第二特定分布式文件系统的协程分配给所述权重最大的分布式文件系统。
[0105]A7、如Al至A6任一项所述的文件处理方法,所述第一设备集合包括第一子设备集合,所述非第一设备集合包括第二子设备集合、第三子设备集合和第四子设备集合,
[0106]所述由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作进一步包括:
[0107]由所述第一子设备集合对所述日志文件进行解压缩;
[0108]由所述第二子设备集合对解压缩后的日志文件进行统一编码;
[0109]由所述第三子设备集合将编码后的日志文件分发到所述第四子设备集合中的多个数据通道之一;以及
[0110]由所述第四子设备集合在所分发的数据通道中对所述编码后的日志文件进行分割,以获得所述日志文件的解析结果。
[0111]AS、如Al至A7任一项所述的文件处理方法,所述文件处理方法进一步包括:
[0112]将所述日志文件的解析结果写入数据库;以及
[0113]对所述数据库中存储的解析结果的至少一部分进行分析,以获得分析数据。
[0114]A9、如A8所述的文件处理方法,所述文件处理方法进一步包括:
[0115]输出所述分析数据,以供用户查看。
[0116]本发明实施例还公开了B10、一种文件处理系统,包括前级装置和多个设备集合,其中,
[0117]所述前级装置用于获取日志文件,其中,所述日志文件用于传送到所述多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;
[0118]所述多个设备集合中的第一设备集合用于对所述日志文件进行所述第一设备集合所对应的解析操作,并且所述多个设备集合中的非第一设备集合用于对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作,以获得所述日志文件的解析结果。
[0119]Bll、如BlO所述的文件处理系统,
[0120]所述前级装置进一步用于将所述日志文件下载到消息队列中;
[0121]所述第一设备集合进一步用于利用消费者程序从所述消息队列中消费所述日志文件。
[0122]B12、如Bll所述的文件处理系统,所述前级装置进一步用于建立多个分布式文件系统与所述消息队列的连接,并且将所述日志文件从所述多个分布式文件系统中的第一特定分布式文件系统下载到所述消息队列中。
[0123]B13、如B12所述的文件处理系统,所述多个分布式文件系统中的每一个具有针对该分布式文件系统的协程,
[0124]所述前级装置进一步用于利用针对所述第一特定分布式文件系统的协程轮询所述第一特定分布式文件系统,以从所述第一特定分布式文件系统中下载所述日志文件。
[0125]B14、如B13所述的文件处理系统,对于所述多个分布式文件系统,针对不同的分布式文件系统的协程经由不同的网络路径轮询对应的分布式文件系统。
[0126]B15、如B13或B14所述的文件处理系统,所述前级装置进一步用于当尝试建立所述多个分布式文件系统中的第二特定分布式文件系统与所述消息队列的连接的次数超过次数阈值时,获取所述多个分布式文件系统的配置信息,并且如果所述第二特定分布式文件系统不是权重最大的分布式文件系统,则将针对所述第二特定分布式文件系统的协程分配给所述权重最大的分布式文件系统,
[0127]其中,所述配置信息包括每个分布式文件系统的权重。
[0128]B16、如B10至B15任一项所述的文件处理系统,所述第一设备集合包括第一子设备集合,所述非第一设备集合包括第二子设备集合、第三子设备集合和第四子设备集合,其中,
[0129]所述第一子设备集合用于对所述日志文件进行解压缩;
[0130]所述第二子设备集合用于对解压缩后的日志文件进行统一编码;[〇131]所述第三子设备集合用于将编码后的日志文件分发到所述第四子设备集合中的多个数据通道之一;
[0132]所述第四子设备集合用于在所分发的数据通道中对所述编码后的日志文件进行分割,以获得所述日志文件的解析结果。
[0133]B17、如B10至B16任一项所述的文件处理系统,所述文件处理系统进一步包括文件分析装置,用于将所述日志文件的解析结果写入数据库,并且对所述数据库中存储的解析结果的至少一部分进行分析,以获得分析数据。
[0134]B18、如B17所述的文件处理系统,所述文件处理系统进一步包括输出装置,用于输出所述分析数据,以供用户查看。
【主权项】
1.一种文件处理方法,包括: 获取日志文件,其中,所述日志文件用于传送到所述多个设备集合中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操作;以及 由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作,以获得所述日志文件的解析结果。2.如权利要求1所述的文件处理方法,其特征在于, 所述获取日志文件进一步包括: 将所述日志文件下载到消息队列中; 在所述由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作之前,所述文件处理方法进一步包括:由所述第一设备集合利用消费者程序从所述消息队列中消费所述日志文件。3.如权利要求2所述的文件处理方法,其特征在于, 在所述将所述日志文件下载到消息队列中之前,所述文件处理方法进一步包括: 建立多个分布式文件系统与所述消息队列的连接; 所述将所述日志文件下载到消息队列中进一步包括: 将所述日志文件从所述多个分布式文件系统中的第一特定分布式文件系统下载到所述消息队列中。4.如权利要求3所述的文件处理方法,其特征在于,所述多个分布式文件系统中的每一个具有针对该分布式文件系统的协程, 所述将所述日志文件下载到消息队列中进一步包括: 利用针对所述第一特定分布式文件系统的协程轮询所述第一特定分布式文件系统,以从所述第一特定分布式文件系统中下载所述日志文件。5.如权利要求4所述的文件处理方法,其特征在于,对于所述多个分布式文件系统,针对不同的分布式文件系统的协程经由不同的网络路径轮询对应的分布式文件系统。6.如权利要求4或5所述的文件处理方法,其特征在于,所述文件处理方法进一步包括: 当尝试建立所述多个分布式文件系统中的第二特定分布式文件系统与所述消息队列的连接的次数超过次数阈值时,获取所述多个分布式文件系统的配置信息,其中,所述配置信息包括每个分布式文件系统的权重; 如果所述第二特定分布式文件系统不是权重最大的分布式文件系统,则将针对所述第二特定分布式文件系统的协程分配给所述权重最大的分布式文件系统。7.如权利要求1至6任一项所述的文件处理方法,其特征在于,所述第一设备集合包括第一子设备集合,所述非第一设备集合包括第二子设备集合、第三子设备集合和第四子设备集合, 所述由所述多个设备集合中的第一设备集合对所述日志文件进行所述第一设备集合所对应的解析操作,并由所述多个设备集合中的非第一设备集合对前一设备集合的操作结果进行所述非第一设备集合所对应的解析操作进一步包括: 由所述第一子设备集合对所述日志文件进行解压缩;由所述第二子设备集合对解压缩后的日志文件进行统一编码;由所述第三子设备集合将编码后的日志文件分发到所述第四子设备集合中的多个数 据通道之一;以及由所述第四子设备集合在所分发的数据通道中对所述编码后的日志文件进行分割,以 获得所述日志文件的解析结果。8.如权利要求1至7任一项所述的文件处理方法,其特征在于,所述文件处理方法进一 步包括:将所述日志文件的解析结果写入数据库;以及对所述数据库中存储的解析结果的至少一部分进行分析,以获得分析数据。9.如权利要求8所述的文件处理方法,其特征在于,所述文件处理方法进一步包括:输出所述分析数据,以供用户查看。10.—种文件处理系统,包括前级装置和多个设备集合,其中,所述前级装置用于获取日志文件,其中,所述日志文件用于传送到所述多个设备集合 中的第一设备集合,所述多个设备集合顺序连接并且不同设备集合用于进行不同的解析操 作;所述多个设备集合中的第一设备集合用于对所述日志文件进行所述第一设备集合所 对应的解析操作,并且所述多个设备集合中的非第一设备集合用于对前一设备集合的操作 结果进行所述非第一设备集合所对应的解析操作,以获得所述日志文件的解析结果。
【文档编号】G06F17/30GK105955979SQ201610237689
【公开日】2016年9月21日
【申请日】2016年4月15日
【发明人】郭军
【申请人】北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1