前一章節,博主介紹了大數據中hadoop的生態圈以及大數據目前的就業前景分析,本節博主將繼續爲你們分享一個典型的大數據分佈式應用場景。node
一個應用普遍的數據分析系統:「web日誌數據挖掘」:mysql
1.案例名稱jquery
網站或APP點擊流日誌數據挖掘系統」;nginx
通常中型的網站(10W的PV以上),天天會產生1G以上Web日誌文件。大型或超大型的網站,可能每小時就會產生10G的數據量。
具體來講,好比某電子商務網站,在線團購業務。每日PV數100w,獨立IP數5w。用戶一般在工做日上午10:00-12:00和下午15:00-18:00訪問量最大。日間主要是經過PC端瀏覽器訪問,休息日及夜間經過移動設備訪問較多。網站搜索瀏量佔整個網站的80%,PC用戶不足1%的用戶會消費,移動用戶有5%會消費。web
對於日誌的這種規模的數據,用HADOOP進行日誌分析,是最適合不過的了。ajax
2.需求描述sql
「Web點擊流日誌」包含着網站運營很重要的信息,經過日誌分析,咱們能夠知道網站的訪問量,哪一個網頁訪問人數最多,哪一個網頁最有價值,廣告轉化率、訪客的來源信息,訪客的終端信息等。瀏覽器
3.數據來源 tomcat
本案例的數據主要由用戶的點擊行爲記錄服務器
獲取方式:在頁面預埋一段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"
4.數據處理流程
本案例跟典型的BI系統極其相似,總體流程以下:
可是,因爲本案例的前提是處理海量數據,於是,流程中各環節所使用的技術則跟傳統BI徹底不一樣,後續章節都會一一講解:
5.項目技術架構圖
6.項目相關截圖
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
7.項目最終效果
通過完整的數據處理流程後,會週期性輸出各種統計指標的報表,在生產實踐中,最終須要將這些報表數據以可視化的形式展示出來,本案例採用web程序來實現數據可視化
效果以下所示:
8.本案相似推薦架構圖