日志分析平台(练手项目)
练习hdfs mr hive hbase
- 各种公司都需要,例如电商、旅游(携程)、保险种种。
- 数据收集-数据清洗-数据分析-数据可视化。
- 数据:用户的行为日志,不是系统产生的日志。
数据量
如何谈数据量
- 站长工具:PV(页面访问量) UV(日均IP访问)
- 说条数。
- 大小慎重说不要瞎说。
技术选型
- 存储引擎:hbase/hdfs
- 分析引擎(计算):mr/hive 为了练手用MR
- 可视化:不做。
模块
用户基本信息分析模块
- 分析新增用户,活跃用户,总用户,新增会员,活跃会员,会话分析等。
- 公司开始的钱都花在推广上。
- 所有指标值都是离线跑批处理。而且没必要做实时,每天早上来看指标就好了。
浏览器来源分析
时间和浏览器两个维度
地域分析模块
调整仓库,根据IP定位
用户访问深度分析模块
某一个会话、某个用户访问的页面个数。业务强相关。
外链数据分析模块
广告投放。拼多多砍一刀
数据源
使用nginx
的log module
nginx
upstream 中 下划线 坑?!
log module
- 内嵌变量
- $remote_host 远程IP地址
- $request_uri 完整的原始请求行(带参数)
- log module
- $mesc 产生时间。单位有意思。
location
location文档
location有精准匹配>正则匹配>前缀匹配
js发送日志
- 用图片发数据。请求一个图片资源,里面有参数给nginx抓到。
1 | 复制代码sendDataToServer : function(data) { |
java代码发送(订单的成功或失败)
发送日志到nginx,如果出现网络延迟等问题,不能让后面的业务受到影响
- 开启一个阻塞队列,开一个线程从里面一直取然后发送。
1 | 复制代码// 只负责扔到队列中。 |
数据采集
将nginx
的日志通过flume
sink到hdfs
1 | 复制代码a1.sources = r1 |
数据清洗
上MR代码。将hdfs->hbase
- 具体需不需要
reducer
是看需不需要。差别还是很大的。从map
->reduce
中间需要落一次盘。差别很大。
本文转载自: 掘金