3. 離線資料分析流程介紹
註:本環節主要感受資料分析系統的宏觀概念及處理流程,初步理解hadoop等框架在其中的應用環節,不用過於關注程式碼細節
#一個應用廣泛的資料分析系統:「web日誌資料探勘」
3.1 需求分析
#3.1.1 案例名稱
「網站或APP點擊流日誌資料探勘系統」。
3.1.2 案例需求描述
「Web點擊流日誌」包含著網站運營很重要的信息,透過日誌分析,我們可以知道網站的訪問量,哪個網頁訪問人數最多,哪個網頁最有價值,廣告轉化率、訪客的來源信息,訪客的終端信息等。
3.1.3 資料來源
##本案例的資料主要由 使用者的點擊行為記錄
取得方式:在頁面預埋一段js程序,為頁面上想要監聽的標籤綁定事件,只要使用者點擊或移動到標籤,即可觸發ajax請求到後台servlet程序,用log4j記錄下事件訊息,從而在web伺服器(nginx、 tomcat等)上形成不斷增長的日誌檔案。
形狀如:
58.215.204.118 - - [18/Sep/2013:06: 51:35 +0000] "GET /wp-includes/js/jquery/jquery.js?ver=1.10.2 HTTP/1.1" 304 0 "http://blog.fens.me/nodejs-socketio-chat/" "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"
|
#3.2 資料處理流程
3.2.1 流程圖解析
本案例跟典型的BI系統極為類似,整體流程如下:
但是,由於本案例的前提是處理大量數據,因而,流程中各環節所使用的技術則跟傳統BI#完全不同,後續課程都會一一講解:
1) 資料收集:客製化開發採集程序,或使用開源框架FLUME
2) 資料預處理:客製開發mapreduce程式運行於hadoop叢集
3) 資料倉儲技術:基於hadoop之上的Hive
4) 資料匯出:基於hadoop的sqoop資料匯入匯出工具
5) 資料視覺化:客製開發web程式或使用kettle等產品
6) 整個過程的流程排程:hadoop生態圈中的oozie工具或其他類似開源產品
##
3.2.2 專案技術架構圖
#
3.2.3 專案相關截圖(感性認識,欣賞即可)
a) Mapreudce程式運行
# b) 在Hive中查詢資料
##
c)
將統計結果匯入mysql
##./sqoop export --connect jdbc:mysql://localhost:3306/weblogdb --username root --password root --table t_display_xx --export-dir /user/hive/warehouse/uv/dt=2014-08-03 |
#
#3.3
專案最終效果
經過完整的資料處理流程後,會週期性輸出各類別統計指標的報表,在生產實務中,最終需要將這些報表資料以視覺化的形式展現出來,本案例採用
web程式來實作資料視覺化效果如下:
以上是離線資料分析流程介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!