Spark项目学习-慕课网日志分析-days4-慕课网日志分析

一 慕课网日志分析实战项目

    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) 是指只输出一个文件   这个是一个调优点

猜你喜欢

转载自blog.csdn.net/canglan211/article/details/82953559