1. 程式人生 > >Spark專案學習-慕課網日誌分析-days4-慕課網日誌分析

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) 是指只輸出一個檔案   這個是一個調優點