项目介绍
整体架构:hadoop, hfds, hbase, hive, flume, sqoop, oozie
- 日志收集
- 数据分析: ETL, MR_Job, Hive 分析,存储到Hbase或MySQL
- 数据展示:SpringBoot, Mybatis, Hicharts, 访客访问量,活跃数量,比率,地区热力图
项目综述
项目划分为lv_track,lv_transforer 和 lv_dataapi 三个分析模块
本次项目主要以分析七个模块的数据,分别为用户基本信息分析、操作系统分析、地域信息分析、用户浏览深度分析、外链数据分析、订单信息分析以及事件分析。
针对不同的分析模块,有不同的用户数据需求,所以我们
- 在 lv_track 项目中提供不同的客户端来收集不同的数据
- 在lv_transformer 中分别采用 hive+mr 两种方式进行数据分析
- 在 lv_dataapi 中进行分析结果的api提供以及结果图表展示
收集系统(lv_track)
将用户浏览的数据采集到我们的存储系统(hdfs),只收集pc端数据和程序后台的部分数据。在pc端我们通过集成js来收集用户浏览行为数据;在程序后台,通过集成java的jar文件来收集我们需要的数据。在这里只考虑java开发环境。js/jar将收集的数据发送到nginx,然后flume监控nginx日志,将数据写入到hdfs中
java sdk
订单信息的分析由于需要明确是否进行支付,需要程序后台发送消息通知,故只有订单分析模块需要在后台程序中调用。
在本次项目中java sdk的作用主要就是发送支付/退款成功的信息给 nginx服务器
工作流如下所示:(退款类似)
1、程序后台事件分析
chargeSuccess事件,本事件的主要作用是发送订单成功的信息给nginx服务器。发送格式同pc端发送方式, 也是访问同一个url来进行数据的传输。格式为: http://track.lv.com/static/img.jpg?requestdata=
最终分析模块 |
PC端js sdk事件 | ||
订单信息分析 |
chargeSuccess事件 chargeRefund事件 |
a) chargeSuccess事件
当会员最终支付成功的时候触发该事件,该事件需要程序主动调用
方法名称 |
onChargeSuccess |
||
发送的数据 |
u_mid=liu&c_time=1449142044528&oid=123&ver=1&en=e_cs&pl=jdk&sdk=java |
||
参数 |
类型 |
是否必填 |
描述 |
orderId |
string |
是 |
订单id |
memberId |
string |
是 |
会员id |
b) chargeRefund事件
当会员进行退款操作的时候触发该事件,该事件需要程序主动调用
2、集成方式:直接将java的sdk引入到项目中即可
3、数据参数说明
参数名称 |
类型 |
描述 |
en |
string |