本帖最后由 不二晨 于 2018-10-10 11:42 编辑
一 慕课网日志分析实战项目
1)用户行为日志概述
2)离线数据处理架构(数据如何采集,如何清洗,需求处理,写入数据库,可视化)
3)项目需求
4)功能实现
5)Spark on YARN (90%公司将Spark跑在YARN上)
6)性能调优
1. 用户行为日志概述
1)用户行为日志:用户每次访问网站时所有的行为数据(访问、浏览、搜索、点击...)
用户行为轨迹、流量日志
2)通过分析日志可以得到:网站页面访问量,网站粘性,相应推荐
2. 用户行为日志生成渠道
1)Nginx
2)Ajax:页面内的js代码获得用户的访问信息,比如鼠标位置信息
3. 用户行为日志内容
1)IP地址,用户账号,访问的时间和区域
2)所使用的客户端,访问app的哪个模块,链接地址
4.日志数据内容:
1)访问的系统属性:操作系统,浏览器等
2)访问特征:点击的url,从哪个url跳转过来的(referer),页面上的停留时间
3)访问信息:session_id,访问ip(通过ip可以确定地理位置,访问城市)等
5. 用户行为日志分析的意义
1)网站的眼睛:能够知道访问者的信息和对商品的需求
2)网站的神经:
3)网站的大脑
二 离线数据处理架构
1. 流程
1)数据采集 大量数据一般使用Nginx,使用Flume进行采集:web日志写入到HDFS
2)数据清洗:具有部分脏数据(不符合规范),可以采用Spark,Hive,MapReduce,清洗完之后的数据可以存放在HDFS上
3)数据处理:按照我们的需求进行相应业务的统计和分析 可以采用Spark,Hive,MapReduce等
4)数据的处理结果入库:结果可以存放到RDBMS,NoSQL等中
5)数据的可视化:通过图形化展示的方式展现出来,如饼图,柱状图,地图,折线图等:ECharts,HUZ,Zeppelin
三 项目需求
1)统计imooc主站最受欢迎的课程/手记的Top N访问次数 最终结果以可视化展示
2)按照地市统计Imooc主站最受欢迎的Top N课程
1.根据IP地址提取出城市信息
2.窗口函数在Spark SQL中的使用
3)按流量进行统计Imooc主站最受欢迎的TopN课程
四 功能实现
1)imooc网站主站网站格式介绍:需要 访问时间,访问过程耗费流量,访问URL,访问IP地址
2)数据清洗:两个阶段处理
3)第二次清洗
1. 使用Spark SQL解析访问日志
2. 解析出来视频和手记的编号和类型
3. 根据IP解析出城市信息(使用开源项目)
4. 使用Spark SQL将访问时间按天进行分区输出(按照日志中的访问时间进行分区,d,h,m5)
输入:访问时间、访问URL、IP地址、流量信息
输出:URL cmsType(类型) cmsID(编号) 流量 IP 城市信息 访问时间 天
4)使用二叉树查询IP地址数据库
1. git clone 下载到本地
2. 编译下载的项目:mvn clean package -DskipTests 编译成功形成jars
3. 安装Jars包
5)数据清并存储到指定位置
1. patitionBy 是指将输出文件按day进行分区
2. coalesce(1) 是指只输出一个文件 这个是一个调优点
【转载】https://blog.csdn.net/canglan211 ... 559?utm_source=copy
|
|