一、实战概述:基于慕课网用户行为日志的分析
用户行为日志
1.1 日志的数据内容
- 访问系统的属性:操作系统、浏览器等
- 访问特征:点击的url、从哪个url过来的、在页面的停留时间
- 访问信息:sessionId、访问的ip信息
1.2 用户行为日志分析的意义
二、离线数据处理的架构
- 数据采集:flume,将日志从一个地方搬运到另一个地方。将web日志写入到HDFS
- 数据清洗:剔除脏数据,采用Spark、Hive、MapReduce
- 数据处理:按照需求进行相应业务逻辑的处理
- 处理结果入库:将结果存放到MySql
- 数据的可视化:通过图形化展示的方式展现出来
离线数据处理
三、项目需求
3.1
3.1 根据UserAgent获取文件头
3.2 :在github使用别人的jar包的方法:找到一个UserAgentParser
- git clone xxx
- 下载下来进行打包:mvn clean package -DskipTests
- 安装到本地仓库: mvn install -DskipTests
-
查看信息安装到如下地方:
mvn install 之后的结果
有jar包就可以在本地使用了 -
在项目里引入该jar包:
在pom.xml引入依赖 -
测试该类
测试UserAgentParser -
测试文件
测试文件1
测试文件2
解析浏览器相关信息的类
四、MapReduce实现
-
Map实现
setUp初始化环境
Map处理
环境清理 -
因为UserAgent在服务器是没有的,所以要打包上去。而Hadoop在服务器是有的,所以要将UserAgent打包,而其它的不用打包
将hadoop的依赖置为provided,junit的本来就是test -
添加插件,用mvn
添加打包的插件,此时不能用mvn clean package 命令
用mvn assembly:assembly打包
打包结果,就把UserAgentParser打包进去了
写shell脚本执行此Jar包