笔记目录:
目录
一、用户行为日志
1.日志介绍
用户每次访问网站时所有行为数据(访问、浏览、点击、搜索....)用户行为轨迹、流量日志
2.日志数据内容
1)访问的系统属性:操作系统、浏览器等等
2)访问特征:点击url、从哪个url跳转过来的(referer)、页面上停留的时间等....
3)访问信息:session_id、访问ip(访问城市)等
二、数据处理流程
1、数据采集
- Flume:web日志写入到HDFS
2、数据清洗
- 脏数据处理
- 可以使用Spark、Hive、MapReduce
- 清洗完之后数据可以放在HDFS
3、数据处理
- 按照需求进行业务统计和分析
- 使用Spark、Hive、MapReduce或者其他分布式计算框架
4、处理结果入库
- 结果存放在RDBMS、NoSQL
5、数据可视化
- 通过图形化展示的方式展现出来:饼图、折线图等
- 使用ECharts、HUE等
【离线数据处理架构流程图】
三、项目需求
- 需求一:统计慕课网最受欢迎的课程/手记的Top N访问次数
- 需求二:按地市统计慕课网最受欢迎的的Top N课程
- 根据ip地址提取城市信息
- 窗口函数在Spark SQL的使用
- 需求三:按流量统计慕课网最受欢迎的的Top N课程
四、数据清洗
- 使用Spark SQL解析日志
- 解析出课程编号、类型
- 根据ip解析出城市信息
- 使用Spark SQL将访问时间按天进行分区输出
- 一般处的日志处理方式,我们需要分区的
- 安装日志中的访问时间进行相应的的分区,比如:d(天),h(小时),m5(每五分钟一个分区)
- 输入:访问时间、访问URL、耗费的流量、访问ip地址信息
- 输出:URL、cmsType(video/article)、cmsId(编号)、流量、ip、城市信息、访问时间、天
五、数据清洗代码实现
原始日志:
183.162.52.7 - - [10/Nov/2016:00:01:02 +0800] "POST /api3/getadv HTT