# log-analyze **Repository Path**: brianli/log-analyze ## Basic Information - **Project Name**: log-analyze - **Description**: 日志分析的简单示例实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-06-15 - **Last Updated**: 2023-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README -- 黑桃点击流日志分析 定义:网站用户访问网页,请求日志系统记录浏览的日志信息 日志分析系统对该访问日志信息进行实时分析,计算出PV,UV中, 并将分析结果持久化,以便报表系统进行统计和页面展示。 技术架构: flume+kafka+storm+redis+mysql 数据处理流程: (假设:JavaWeb项目已经对某个分析任务配置好任务信息 --> MySQL中有分析任务的数据) 1、通过日志采集系统(flume)将数据下沉到Kafka中 2、Storm程序--> 从Kafka中消费数据,将日志信息逐条分析 3、Storm程序--> 从MySQL中加载产品人员配置的任务信息 4、Storm程序--> 计算每个任务的各项指标,并将各个指标的中间结果(例如当前时间节点的PV,UV)存放在redis中 5、同步程序 --> 按照指定的时间周期,定时从redis中计算每个任务的增量数据(例如当前时间节点相对于上一个时间节点增加了多少PV,UV),并将增量数据保存在MySQL中 6、同步程序 --> 按照每个指标的增量数据,计算出不同维度(每分钟,每半个小时,每小时,每天)的基础数据 7、报表系统 --> 从MySQL中获取每个指标的不同维度的基础数据进行展示 功能模块设计: --> 数据收集模块,编写Flume的采集配置,source为tail -F 日志文件,sink为Kafka的topic(log-analyze) --> 数据存储模块,在kafka中创建点击流相关的topic(log-analyze) --> Storm程序,两个模块 1.从Kafka中消费信息,实时计算,并将计算结果存放在redis中 2.从MySql中定时加载(更新)配置信息 --> 同步程序 1.从redis中获取不同任务的数据,计算增量并保存到MySQL中 2.根据增量数据,计算出不同维度的基础数据,保存在MySQL中 --> 报表系统,从MySQL获取不同维度的信息进行页面展示