一個應用廣泛的數據分析系統:“web日誌數據挖掘”
需求分析
一般中型的網站(10W的PV以上),每天會產生1G以上Web日誌文件。大型或超大型的網站,可能每小時就會產生10G的數據量。
具體來說,比如某電子商務網站,在線團購業務。每日PV數100w,獨立IP數5w。用戶通常在工作日上午10:00-12:00和下午15:00-18:00訪問量最大。日間主要是通過PC端瀏覽器訪問,休息日及夜間通過移動設備訪問較多。網站搜索瀏量佔整個網站的80%,PC用戶不足1%的用戶會消費,移動用戶有5%會消費。
對於日誌的這種規模的數據,用HADOOP進行日誌分析,是最適合不過的了。
案例需求描述
“Web點擊流日誌”包含著網站運營很重要的信息,通過日誌分析,我們可以知道網站的訪問量,哪個網頁訪問人數最多,哪個網頁最有價值,廣告轉化率、訪客的來源信息,訪客的終端信息等。
數據來源
本案例的數據主要由用戶的點擊行為記錄
獲取方式:在頁面預埋一段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"
數據處理流程
流程圖解析
本案例跟典型的BI系統極其類似,整體流程如下:
但是,由於本案例的前提是處理海量數據,因而,流程中各環節所使用的技術則跟傳統BI完全不同,後續課程都會一一講解:
1) 數據採集:定製開發採集程序,或使用開源框架FLUME
2) 數據預處理:定製開發mapreduce程序運行於hadoop集群
3) 數據倉庫技術:基於hadoop之上的Hive
4) 數據導出:基於hadoop的sqoop數據導入導出工具
5) 數據可視化:定製開發web程序或使用kettle等產品
6) 整個過程的流程調度:hadoop生態圈中的oozie工具或其他類似開源產品
項目技術架構圖
項目最終效果
經過完整的數據處理流程後,會週期性輸出各類統計指標的報表,在生產實踐中,最終需要將這些報表數據以可視化的形式展現出來,本案例採用web程序來實現數據可視化
效果如下所示:
關注“樂搏學院”跟徐老師一起走進大數據世界,零基礎入門很簡單!