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