CN114168557A - 一种访问日志的处理方法、装置、计算机设备和存储介质 - Google Patents
一种访问日志的处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114168557A CN114168557A CN202111477921.3A CN202111477921A CN114168557A CN 114168557 A CN114168557 A CN 114168557A CN 202111477921 A CN202111477921 A CN 202111477921A CN 114168557 A CN114168557 A CN 114168557A
- Authority
- CN
- China
- Prior art keywords
- log
- statistical
- link
- task
- distributed computing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/355—Class or cluster creation or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种访问日志的处理方法、装置、计算机设备和存储介质,该方法包括:采集网站服务器在用户访问页面时生成的日志文件,识别日志文件中所包含的数据的维度,针对每个维度生成一个或多个分布式计算节点,当接收到统计任务时,将统计任务拆分为多个维度、以组成链路,按照链路的顺序依次在分布式计算节点中对日志文件聚类,获得日志簇,对日志簇中的日志文件进行统计,获得统计结果,将统计结果存储至分布式文件系统中,实现了分布式系统Hadoop实时对日志文件聚类,在维度上对日志文件进行聚类,可以忽略不同统计任务之间的业务差别,大大提高了适用性,无需频繁生成线程,避免了内存溢出。
Description
技术领域
本发明涉及大数据的技术领域,尤其涉及一种访问日志的处理方法、装置、计算机设备和存储介质。
背景技术
在互联网的各个网站中,会对外提供web(网页)应用,用户在访问这些网站提供的web应用时,网站通常生成日志文件。
在网站的某些业务上,实时统计日志文件中的数据,例如,购物网站在大型促销的活动中,会实时统计成交额,此时,网站会在线对日志文件进行处理,通常是针对一项统计生成一项任务,动态生成线程执行该任务,对日志文件中的数据进行筛选、统计。
在某些场景中,可能经常变更对日志文件统计的维度,例如,网站提供多个微服务或同时维护众多版本的游戏,在网站与客户端的连接存在波动时,对业务的质量存在影响,运维人员会将不同数据组合分析,实时寻找可能存在问题的环节,此时,网站会频繁地生成线程,线程的数量较多,部分资源没有被回收,容易造成内存溢出。
发明内容
本发明提出了一种访问日志的处理方法、装置、计算机设备和存储介质,以解决使用线程实时对日志文件进行统计容易造成内存溢出的问题。
第一方面,本发明实施例提供了一种访问日志的处理方法,应用于分布式系统Hadoop,所述分布式系统Hadoop包括分布式文件系统、分布式计算节点,所述方法包括:
采集网站服务器在用户访问页面时生成的日志文件;
识别所述日志文件中所包含的数据的维度;
针对每个所述维度生成一个或多个分布式计算节点;
当接收到统计任务时,将所述统计任务拆分为多个维度、以组成链路;
按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇;
对所述日志簇中的所述日志文件进行统计,获得统计结果;
将所述统计结果存储至分布式文件系统中。
可选地,所述针对每个所述维度生成一个或多个分布式计算节点,包括:
为每个所述维度创建一个或多个分布式计算节点,所述分布式计算节点包括映射节点、规约节点;
获取对所述维度配置的筛选规则;
将所述筛选规则写入所述映射节点中;
将所述规约节点配置为输出所述映射节点筛选的所述日志文件。
可选地,所述将所述统计任务拆分为多个维度、以组成链路,包括:
识别所述统计任务中数据所属的维度;
将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部;
针对当前所述统计任务的链路的尾部,查询为每个所述维度生成的所述分布式计算节点的负载状态;
按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部;
将所述头部与所述尾部拼接为当前所述统计任务的链路。
可选地,所述将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部,包括:
针对其他所述统计任务确定变量,所述变量初始为其他所述统计任务对应的链路中首个维度;
将当前所述统计任务对应的所述维度与所述变量进行比较;
若当前所述统计任务对应的所述维度与所述变量相同,则将当前所述统计任务对应的所述维度拼接至子串中;
将其他所述统计任务对应的链路中下一个维度写入所述变量,返回执行所述针对其他所述统计任务确定变量;
若当前所述统计任务对应的所述维度与所述变量不同,则对其他所述统计任务输出子串;
将所有其他所述统计任务对应的所述子串进行比较;
选择长度最长的所述子串为当前所述统计任务的链路的头部。
可选地,所述按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部,包括:
按照所述负载状态对所述维度进行升序排序;
将升序排序之后的所述维度组成当前所述统计任务的链路的尾部。
可选地,所述按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇,包括:
判断是否遍历完所述链路;
若是,则输出所述日志文件,作为日志簇;
若否,则将所述日志文件输入下一个所述维度对应的所述分布式计算节点,在所述分布式计算节点中筛选所述维度之下的所述日志文件,返回执行所述判断是否遍历完所述链路。
可选地,所述分布式计算节点包括映射节点、规约节点;所述在所述分布式计算节点中筛选所述维度之下的所述日志文件,包括:
在所述映射节点中按照为所述维度配置的筛选规则筛选所述日志文件;
在所述规约节点中输出所述映射节点筛选的所述日志文件。
第二方面,本发明实施例还提供了一种访问日志的处理装置,应用于分布式系统Hadoop,所述分布式系统Hadoop包括分布式文件系统、分布式计算节点,所述装置包括:
日志文件采集模块,用于采集网站服务器在用户访问页面时生成的日志文件;
维度识别模块,用于识别所述日志文件中所包含的数据的维度;
计算节点生成模块,用于针对每个所述维度生成一个或多个分布式计算节点;
链路组成模块,用于当接收到统计任务时,将所述统计任务拆分为多个维度、以组成链路;
日志文件聚类模块,用于按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇;
日志文件统计模块,用于对所述日志簇中的所述日志文件进行统计,获得统计结果;
统计结果存储模块,用于将所述统计结果存储至分布式文件系统中。
可选地,所述计算节点生成模块还用于:
为每个所述维度创建一个或多个分布式计算节点,所述分布式计算节点包括映射节点、规约节点;
获取对所述维度配置的筛选规则;
将所述筛选规则写入所述映射节点中;
将所述规约节点配置为输出所述映射节点筛选的所述日志文件。
可选地,所述链路组成模块还用于:
识别所述统计任务中数据所属的维度;
将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部;
针对当前所述统计任务的链路的尾部,查询为每个所述维度生成的所述分布式计算节点的负载状态;
按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部;
将所述头部与所述尾部拼接为当前所述统计任务的链路。
可选地,所述链路组成模块还用于:
针对其他所述统计任务确定变量,所述变量初始为其他所述统计任务对应的链路中首个维度;
将当前所述统计任务对应的所述维度与所述变量进行比较;
若当前所述统计任务对应的所述维度与所述变量相同,则将当前所述统计任务对应的所述维度拼接至子串中;
将其他所述统计任务对应的链路中下一个维度写入所述变量,返回执行所述针对其他所述统计任务确定变量;
若当前所述统计任务对应的所述维度与所述变量不同,则对其他所述统计任务输出子串;
将所有其他所述统计任务对应的所述子串进行比较;
选择长度最长的所述子串为当前所述统计任务的链路的头部。
可选地,所述链路组成模块还用于:
按照所述负载状态对所述维度进行升序排序;
将升序排序之后的所述维度组成当前所述统计任务的链路的尾部。
可选地,所述日志文件聚类模块还用于:
判断是否遍历完所述链路;
若是,则输出所述日志文件,作为日志簇;
若否,则将所述日志文件输入下一个所述维度对应的所述分布式计算节点,在所述分布式计算节点中筛选所述维度之下的所述日志文件,返回执行所述判断是否遍历完所述链路。
可选地,所述分布式计算节点包括映射节点、规约节点;所述日志文件聚类模块还用于:
在所述映射节点中按照为所述维度配置的筛选规则筛选所述日志文件;
在所述规约节点中输出所述映射节点筛选的所述日志文件。
第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中任一项所述的访问日志的处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的访问日志的处理方法。
在本实施例中,采集网站服务器在用户访问页面时生成的日志文件,识别日志文件中所包含的数据的维度,针对每个维度生成一个或多个分布式计算节点,当接收到统计任务时,将统计任务拆分为多个维度、以组成链路,按照链路的顺序依次在分布式计算节点中对日志文件聚类,获得日志簇,对日志簇中的日志文件进行统计,获得统计结果,将统计结果存储至分布式文件系统中,实现了分布式系统Hadoop实时对日志文件聚类,在维度上对日志文件进行聚类,可以忽略不同统计任务之间的业务差别,大大提高了适用性,分布式计算节点可以对不同统计任务聚类不同维度下的日志文件,无需频繁生成线程,避免了内存溢出。
附图说明
图1为本发明实施例一提供的一种访问日志的处理方法的流程图;
图2为本发明实施例二提供的一种访问日志的处理装置的结构示意图;
图3为本发明实施例三提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种访问日志的处理方法的流程图,本实施例可适用于应用分布式系统对日志文件进行统计的情况,该方法可以由访问日志的处理装置来执行,该访问日志的处理装置可以由软件和/或硬件实现,可应用于作为分布式系统Hadoop的计算机设备中,例如,服务器、工作站、个人电脑,等等,具体包括如下步骤:
步骤101、采集网站服务器在用户访问页面时生成的日志文件。
在本实施例中,网站配置有服务器,该服务器提供web服务,用户通过客户端访问该网站提供的页面,此时,网站的服务器会在用户(以客户端表示)访问页面的过程中,生成日志文件。
针对不同的业务,日志文件记录的数据的种类有所不同,一般情况下,日志文件可以记录用户(以客户端表示)的IP(Internet Protocol,网际互连协议)地址,用户使用的设备的类型,访问的时间,设备的操作系统,浏览器或应用程序的版本,显示器,访问的页面或访问页面中的资源,访问的结果,等等。
步骤102、识别日志文件中所包含的数据的维度。
在本实施例中,可以对日志文件进行解析,由于数据一般是按照既定的格式进行记录,如键值对key-value,按照该格式即可解析该日志文件中所包含的数据的维度,每种维度表示该数据的一个种类。
步骤103、针对每个维度生成一个或多个分布式计算节点。
在实际应用中,分布式系统Hadoop包括分布式文件系统HDFS、分布式计算节点MapReduce。
针对日志文件中的每个维度,可以为维度生成一个或多个分布式计算节点MapReduce,即,一个或多个分布式计算节点MapReduce用于该维度下的数据的统计,分布式计算节点MapReduce的数量可以按照实际情况动态地进行缩容、扩容。
在具体实现中,可以为每个维度创建一个或多个分布式计算节点MapReduce,分布式计算节点MapReduce包括映射节点Map、规约节点Reduce,映射节点Map、规约节点Reduce均以键(key)\值(value)对作为输入(Input)和输出(Output),并由用户选择它们的类型。
映射节点Map把输入的数据(key,value)通过自定义的映射过程转变为一组中间键值对的集合。
规约节点Reduce则会对生成的临时中间键值对进行规约处理,这个规约的规则也是用户自定义的,最后规约节点Reduce会输出最终结果。
映射节点Map的输出经由MapReduce框架处理后,最后分发到规约节点Reduce。
在本实施例中,获取对维度配置的筛选规则,将筛选规则写入映射节点Map中,作为自定义的映射过程,例如,对于IP地址,可以设置筛选规则为指定的IP地址范围,对于访问的时间,可以设置筛选规则为闲时(00:00-06:00),等等。
由于映射节点Map已实现统计,规约节点Reduce并不额外进行统计、直接输出即可,因此,可以将规约节点Reduce配置为输出映射节点筛选的日志文件,作为规约的规则。
步骤104、当接收到统计任务时,将统计任务拆分为多个维度、以组成链路。
如果实时接收到对日志文件进行统计的统计任务,那么可以针对统计任务,确定待统计的多个维度,将多个维度按照顺序连接,从而组成有序的链路。
进一步而言,多个维度之间通常并不具备依赖性,即,对某一个维度的筛选并不依赖对其他维度的筛选,该维度并不排序在其他维度之后,例如,若统计在闲时访问指定页面的用户量,可以先在访问时间的维度下筛选闲时、再在页面的维度下筛选指定的页面,也可以先在页面的维度下筛选指定的页面、再在访问时间的维度下筛选闲时。
因此,对于这些不具备依赖性的维度,可以按照其他因素组建链路,以便在其他因素上达到最优。
在本发明的一个实施例中,步骤104可以包括如下步骤:
步骤1041、识别统计任务中数据所属的维度。
在本实施例中,可以从统计任务中读取待统计的数据所属的维度,针对不同的业务,统计任务中待统计的数据所属的维度也有所不同,本实施例对此不加以限制。
例如,针对客户端闪退的异常,待统计的数据所属的维度包括IP地址,用户使用的设备的类型,设备的操作系统,浏览器或应用程序的版本。
又例如,针对直播业务的画面存在的异常,待统计的数据所属的维度包括IP地址,浏览器或应用程序的版本,显示器,访问的页面或访问页面中的资源。
步骤1042、将当前统计任务对应的维度与其他统计任务对应的链路进行比较,以确定当前统计任务的链路的头部。
一般情况下,除了当前的统计任务之外,还可能存在其他统计任务,不同的统计任务之间待统计的维度具有一定的重复性,因此,可以将当前统计任务对应的维度与其他统计任务对应的链路进行比较,从而复用其他统计任务的维度,作为当前统计任务的链路的头部,即,排序在链路最前的一个或多个维度,从而减少重复统计的工作,减少对资源的占用。
在具体实现中,针对其他统计任务确定变量,该变量初始为其他统计任务对应的链路中首个维度。
将当前统计任务对应的任一维度与该变量进行比较。
若当前统计任务对应的维度与变量相同,可复用该维度,则将当前统计任务对应的维度按照顺序拼接至子串中。
将其他统计任务对应的链路中下一个维度写入变量,返回执行针对其他统计任务确定变量。
若当前统计任务对应的维度与变量不同,无可复用的维度,此时,则对其他统计任务输出子串,该子串为其他统计任务的头部。
将所有其他统计任务对应的子串进行比较。
选择长度最长的子串为当前统计任务的链路的头部,从而达到复用最大化的程度。
步骤1043、针对当前统计任务的链路的尾部,查询为每个维度生成的分布式计算节点的负载状态。
在本实施例中,将链路划分为头部与尾部,针对既定的任务,除位于链路头部的维度之外的其他维度将纳入链路尾部。
针对位于的链路尾部的维度,查询为每个维度生成的分布式计算节点的负载状态,该负载状态可以以CPU(central processing unit,中央处理器)占用率、内存占用率等指标表示。
步骤1044、按照负载状态将维度组成当前统计任务的链路的尾部。
在本实施例中,可以按照负载状态将维度组成当前统计任务的链路的尾部,实现负载均衡。
在具体实现中,可以按照负载状态对维度进行升序排序,将升序排序之后的维度组成当前统计任务的链路的尾部,使得优先在负载较低的分布式计算节点进行统计,给负载较高的分布式计算节点留下较为充裕的时间处理其他统计任务。
步骤1045、将头部与尾部拼接为当前统计任务的链路。
若确定了当前链路的头部与尾部,则可以以头部在先、尾部在后的顺序拼接为当前统计任务的链路。
步骤105、按照链路的顺序依次在分布式计算节点中对日志文件聚类,获得日志簇。
在实际应用中,可以按照链路中各个维度的顺序,依次调用该维度对应的分布式计算节点对日志文件聚类,获得日志簇。
在本发明的一个实施例中,步骤105可以包括如下步骤:
步骤1051、判断是否遍历完链路;若是,则执行步骤1052,若否,则执行步骤1053。
对于链路中的维度,可以按照顺序依次进行遍历,以调用相应的分布式计算节点筛选日志文件,那么,在每次筛选时,均可以判断是否遍历完链路的维度。
步骤1052、输出日志文件,作为日志簇。
如果已经遍历完链路的维度,链路最后一个维度对应的分布式计算节点输出的日志文件为日志簇。
步骤1053、将日志文件输入下一个维度对应的分布式计算节点,在分布式计算节点中筛选维度之下的日志文件,返回执行步骤1051。
如果未经遍历完链路的维度,则可以将上一维度对应的分布式计算节点输出的日志文件输入下一个维度对应的分布式计算节点,从而在下一个维度对应的分布式计算节点中筛选相应维度之下的日志文件。
在具体实现中,分布式计算节点MapReduce包括映射节点Map、规约节点Reduce,在映射节点Map中按照为维度配置的筛选规则筛选日志文件,在规约节点Reduce中输出映射节点Map筛选的日志文件。
步骤106、对日志簇中的日志文件进行统计,获得统计结果。
按照统计任务中的业务规范,对日志簇中的日志文件进行统计,获得统计结果,例如,在闲时访问指定页面的用户量、使用指定版本的浏览器访问指定页面的用户量,等等。
步骤107、将统计结果存储至分布式文件系统中。
将统计结果存储至分布式文件系统中,等待后续业务调用。
在本实施例中,采集网站服务器在用户访问页面时生成的日志文件,识别日志文件中所包含的数据的维度,针对每个维度生成一个或多个分布式计算节点,当接收到统计任务时,将统计任务拆分为多个维度、以组成链路,按照链路的顺序依次在分布式计算节点中对日志文件聚类,获得日志簇,对日志簇中的日志文件进行统计,获得统计结果,将统计结果存储至分布式文件系统中,实现了分布式系统Hadoop实时对日志文件聚类,在维度上对日志文件进行聚类,可以忽略不同统计任务之间的业务差别,大大提高了适用性,分布式计算节点可以对不同统计任务聚类不同维度下的日志文件,无需频繁生成线程,避免了内存溢出。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例二
图2为本发明实施例二提供的一种访问日志的处理装置的结构框图,应用于分布式系统Hadoop,所述分布式系统Hadoop包括分布式文件系统、分布式计算节点,所述装置具体可以包括如下模块:
日志文件采集模块201,用于采集网站服务器在用户访问页面时生成的日志文件;
维度识别模块202,用于识别所述日志文件中所包含的数据的维度;
计算节点生成模块203,用于针对每个所述维度生成一个或多个分布式计算节点;
链路组成模块204,用于当接收到统计任务时,将所述统计任务拆分为多个维度、以组成链路;
日志文件聚类模块205,用于按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇;
日志文件统计模块206,用于对所述日志簇中的所述日志文件进行统计,获得统计结果;
统计结果存储模块207,用于将所述统计结果存储至分布式文件系统中。
在本发明的一个实施例中,所述计算节点生成模块203还用于:
为每个所述维度创建一个或多个分布式计算节点,所述分布式计算节点包括映射节点、规约节点;
获取对所述维度配置的筛选规则;
将所述筛选规则写入所述映射节点中;
将所述规约节点配置为输出所述映射节点筛选的所述日志文件。
在本发明的一个实施例中,所述链路组成模块204还用于:
识别所述统计任务中数据所属的维度;
将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部;
针对当前所述统计任务的链路的尾部,查询为每个所述维度生成的所述分布式计算节点的负载状态;
按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部;
将所述头部与所述尾部拼接为当前所述统计任务的链路。
在本发明的一个实施例中,所述链路组成模块204还用于:
针对其他所述统计任务确定变量,所述变量初始为其他所述统计任务对应的链路中首个维度;
将当前所述统计任务对应的所述维度与所述变量进行比较;
若当前所述统计任务对应的所述维度与所述变量相同,则将当前所述统计任务对应的所述维度拼接至子串中;
将其他所述统计任务对应的链路中下一个维度写入所述变量,返回执行所述针对其他所述统计任务确定变量;
若当前所述统计任务对应的所述维度与所述变量不同,则对其他所述统计任务输出子串;
将所有其他所述统计任务对应的所述子串进行比较;
选择长度最长的所述子串为当前所述统计任务的链路的头部。
在本发明的一个实施例中,所述链路组成模块204还用于:
按照所述负载状态对所述维度进行升序排序;
将升序排序之后的所述维度组成当前所述统计任务的链路的尾部。
在本发明的一个实施例中,所述日志文件聚类模块205还用于:
判断是否遍历完所述链路;
若是,则输出所述日志文件,作为日志簇;
若否,则将所述日志文件输入下一个所述维度对应的所述分布式计算节点,在所述分布式计算节点中筛选所述维度之下的所述日志文件,返回执行所述判断是否遍历完所述链路。
在本发明的一个实施例中,所述分布式计算节点包括映射节点、规约节点;所述日志文件聚类模块205还用于:
在所述映射节点中按照为所述维度配置的筛选规则筛选所述日志文件;
在所述规约节点中输出所述映射节点筛选的所述日志文件。
本发明实施例所提供的访问日志的处理装置可执行本发明任意实施例所提供的访问日志的处理方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3为本发明实施例三提供的一种计算机设备的结构示意图。图3示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图3显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的访问日志的处理方法。
实施例四
本发明实施例四还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述访问日志的处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种访问日志的处理方法,其特征在于,应用于分布式系统Hadoop,所述分布式系统Hadoop包括分布式文件系统、分布式计算节点,所述方法包括:
采集网站服务器在用户访问页面时生成的日志文件;
识别所述日志文件中所包含的数据的维度;
针对每个所述维度生成一个或多个分布式计算节点;
当接收到统计任务时,将所述统计任务拆分为多个维度、以组成链路;
按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇;
对所述日志簇中的所述日志文件进行统计,获得统计结果;
将所述统计结果存储至分布式文件系统中。
2.根据权利要求1所述的方法,其特征在于,所述针对每个所述维度生成一个或多个分布式计算节点,包括:
为每个所述维度创建一个或多个分布式计算节点,所述分布式计算节点包括映射节点、规约节点;
获取对所述维度配置的筛选规则;
将所述筛选规则写入所述映射节点中;
将所述规约节点配置为输出所述映射节点筛选的所述日志文件。
3.根据权利要求1所述的方法,其特征在于,所述将所述统计任务拆分为多个维度、以组成链路,包括:
识别所述统计任务中数据所属的维度;
将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部;
针对当前所述统计任务的链路的尾部,查询为每个所述维度生成的所述分布式计算节点的负载状态;
按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部;
将所述头部与所述尾部拼接为当前所述统计任务的链路。
4.根据权利要求3所述的方法,其特征在于,所述将当前所述统计任务对应的所述维度与其他所述统计任务对应的链路进行比较,以确定当前所述统计任务的链路的头部,包括:
针对其他所述统计任务确定变量,所述变量初始为其他所述统计任务对应的链路中首个维度;
将当前所述统计任务对应的所述维度与所述变量进行比较;
若当前所述统计任务对应的所述维度与所述变量相同,则将当前所述统计任务对应的所述维度拼接至子串中;
将其他所述统计任务对应的链路中下一个维度写入所述变量,返回执行所述针对其他所述统计任务确定变量;
若当前所述统计任务对应的所述维度与所述变量不同,则对其他所述统计任务输出子串;
将所有其他所述统计任务对应的所述子串进行比较;
选择长度最长的所述子串为当前所述统计任务的链路的头部。
5.根据权利要求3所述的方法,其特征在于,所述按照所述负载状态将所述维度组成当前所述统计任务的链路的尾部,包括:
按照所述负载状态对所述维度进行升序排序;
将升序排序之后的所述维度组成当前所述统计任务的链路的尾部。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇,包括:
判断是否遍历完所述链路;
若是,则输出所述日志文件,作为日志簇;
若否,则将所述日志文件输入下一个所述维度对应的所述分布式计算节点,在所述分布式计算节点中筛选所述维度之下的所述日志文件,返回执行所述判断是否遍历完所述链路。
7.根据权利要求6所述的方法,其特征在于,所述分布式计算节点包括映射节点、规约节点;所述在所述分布式计算节点中筛选所述维度之下的所述日志文件,包括:
在所述映射节点中按照为所述维度配置的筛选规则筛选所述日志文件;
在所述规约节点中输出所述映射节点筛选的所述日志文件。
8.一种访问日志的处理装置,其特征在于,应用于分布式系统Hadoop,所述分布式系统Hadoop包括分布式文件系统、分布式计算节点,所述装置包括:
日志文件采集模块,用于采集网站服务器在用户访问页面时生成的日志文件;
维度识别模块,用于识别所述日志文件中所包含的数据的维度;
计算节点生成模块,用于针对每个所述维度生成一个或多个分布式计算节点;
链路组成模块,用于当接收到统计任务时,将所述统计任务拆分为多个维度、以组成链路;
日志文件聚类模块,用于按照所述链路的顺序依次在所述分布式计算节点中对所述日志文件聚类,获得日志簇;
日志文件统计模块,用于对所述日志簇中的所述日志文件进行统计,获得统计结果;
统计结果存储模块,用于将所述统计结果存储至分布式文件系统中。
9.一种计算机设备,其特征在于,所述计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的访问日志的处理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的访问日志的处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477921.3A CN114168557A (zh) | 2021-12-06 | 2021-12-06 | 一种访问日志的处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111477921.3A CN114168557A (zh) | 2021-12-06 | 2021-12-06 | 一种访问日志的处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168557A true CN114168557A (zh) | 2022-03-11 |
Family
ID=80483389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111477921.3A Pending CN114168557A (zh) | 2021-12-06 | 2021-12-06 | 一种访问日志的处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168557A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722081A (zh) * | 2022-06-09 | 2022-07-08 | 杭银消费金融股份有限公司 | 一种基于中转库模式的流式数据时间序列传输方法及系统 |
-
2021
- 2021-12-06 CN CN202111477921.3A patent/CN114168557A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114722081A (zh) * | 2022-06-09 | 2022-07-08 | 杭银消费金融股份有限公司 | 一种基于中转库模式的流式数据时间序列传输方法及系统 |
CN114722081B (zh) * | 2022-06-09 | 2022-09-02 | 杭银消费金融股份有限公司 | 一种基于中转库模式的流式数据时间序列传输方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034993B (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
EP3251031B1 (en) | Techniques for compact data storage of network traffic and efficient search thereof | |
JP2022118108A (ja) | ログ監査方法、装置、電子機器、媒体およびコンピュータプログラム | |
US20210385251A1 (en) | System and methods for integrating datasets and automating transformation workflows using a distributed computational graph | |
CN111143286B (zh) | 一种云平台日志管理方法及系统 | |
CN113360554B (zh) | 一种数据抽取、转换和加载etl的方法和设备 | |
US11036608B2 (en) | Identifying differences in resource usage across different versions of a software application | |
WO2020087082A1 (en) | Trace and span sampling and analysis for instrumented software | |
Qian et al. | Benchmarking modern distributed streaming platforms | |
CN109039787B (zh) | 日志处理方法、装置及大数据集群 | |
US11546380B2 (en) | System and method for creation and implementation of data processing workflows using a distributed computational graph | |
CN113254255B (zh) | 一种云平台日志的分析方法、系统、设备及介质 | |
CN114598597B (zh) | 多源日志解析方法、装置、计算机设备及介质 | |
CN103077192A (zh) | 一种数据处理方法及其系统 | |
CN113297057A (zh) | 内存分析方法、装置及系统 | |
CN112182025A (zh) | 日志分析方法、装置、设备与计算机可读存储介质 | |
CN112612832B (zh) | 节点分析方法、装置、设备及存储介质 | |
CN114168557A (zh) | 一种访问日志的处理方法、装置、计算机设备和存储介质 | |
CN110908870A (zh) | 一种大型机的资源监控方法、装置、存储介质及设备 | |
CN112306820A (zh) | 一种日志运维根因分析方法、装置、电子设备及存储介质 | |
CN113259878B (zh) | 话单结算方法、系统、电子设备及计算机可读存储介质 | |
CN115016890A (zh) | 虚拟机资源分配方法、装置、电子设备及存储介质 | |
CN113344023A (zh) | 一种代码推荐方法、装置及系统 | |
CN113704203A (zh) | 一种日志文件的处理方法及装置 |
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 |