基於Web日誌數據處理的網站KPI分析系統(Un)
前言 我有一個月的時間(更新日期06/26/2017 只剩26天)用來學習一些我喜歡的東西,那麼理清思路,抓緊時間搞。Web數據中的Web日誌數據包含了用戶訪問 Web 時的訪問記錄信息。通過對這些進行分析,可以獲取網站KPI指標以及用戶類別等信息。這些信息蘊藏著巨大的價值,可作為網站調優、和新功能推出的基礎,提升網站的效果和用戶的使用體驗。
Web日誌通常數據量較大,一般網站每天的數據量可以達到幾個GB或者幾十GB。一些大型或超大型的網站或網路應用,每天數據量可能會達到幾百GB或者TB級別。對於這種規模的日誌數據,需要採用分散式的數據處理平台才能實現快速有效的分析。為此,本項目基於Spark,設計實現一個海量Web日誌數據處理的網站KPI分析系統。
功能需求分析:
- 功能模塊1 日誌數據搜集:Web日誌的基於用戶訪問網站自動生成,基本日誌文件通常包含客戶端IP、用戶名、狀態、伺服器名、協議版本等客戶連接的物理信息
- 功能模塊2 數據收集-日期時間部分:搜集請求的日期、時間,會話監控
- 功能模塊3 IP監控記錄未註冊和已註冊用戶的IP:分類手機 IP信息,併入庫
- 功能模塊4 數據收集-請求資源:即相對於伺服器上根目錄的途徑監聽,相對於伺服器上根目錄的途徑監聽
- 功能模塊5 網站訪問KPI指標模塊:PV(Page View):頁面訪問量統計
- 功能模塊6 網站訪問KPI指標模塊:按IP或IP段的訪問量統計
- 功能模塊7 用戶訪問量統計:Datenor Time:按時間用戶訪問量統計
- 功能模塊8 客戶端瀏覽器統計:Browsern統計上網行為
- 功能模塊9 客戶端操作系統統計:客戶數據的管理與統計
第一部分 生產環境搭建篇
硬體環境:
操作系統:Windows 10 professional
CPU類型:i7-4750HQCPU速度:2GHz-3.2GHz顯卡: 英特爾銳炬Pro5200核芯顯卡核心:四核內存容量:8GB
內存類型:DDR3L 1600硬碟容量:500GB
軟體環境:
虛擬化技術環境搭建:Vmwareworkstation +Centos 7
可視化資料庫訪問工具:Navicat premium 11.2 x64(下載鏈接:http://pan.baidu.com/s/1cfFeVW 密碼:tirb)Windows 上的SFTP、FTP 文件傳輸工具:Xftp 5終端控制台:Xshell 5Java開發IDE:Eclipse neonPython科學計算環境以及IP爬蟲
1.安裝VMware? Workstation 12 Pro
VMware Workstation 12序列號:5A02H-AU243-TZJ49-GTC7K-3C61N
輸入key即可永久激活,只是版權意識上,這個還是盜版,商業用途會被送律師函!
在vmware安裝Centos 7 linux 系統。
2.在Centos 7 安裝MySQL服務:
CentOS 7的yum源中貌似沒有正常安裝mysql時的mysql-sever文件,需要去官網上下載
# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm# rpm -ivh mysql-community-release-el7-5.noarch.rpm# yum install mysql-community-server成功安裝之後重啟mysql服務
# service mysqld restart
初次安裝mysql是root賬戶是沒有密碼的
設置密碼的方法
# mysql -urootmysql> set password for 『root』@『localhost』 = password(mypasswd);mysql> exit
3.Navicat 訪問虛擬機中的mysql資料庫:測試的時候就沒有設置MySQL資料庫的密碼,此處無密碼登陸。(安全起見,應設置密碼)
[zhong@bogon ~]$ mysql -uroot -prootnWarning: Using a password on the command line interface can be insecure.nWelcome to the MySQL monitor. Commands end with ; or g.nYour MySQL connection id is 19nServer version: 5.6.36 MySQL Community Server (GPL)nnCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.nnOracle is a registered trademark of Oracle Corporation and/or itsnaffiliates. Other names may be trademarks of their respectivenowners.nnType help; or h for help. Type c to clear the current input statement.nnmysql> grant all privileges on *.* to zhong@"%" identified by "31415926" with grant option;nQuery OK, 0 rows affected (0.07 sec)nnmysql> flush privileges; nQuery OK, 0 rows affected (0.06 sec)nnmysql> use mysqlnReading table information for completion of table and column namesnYou can turn off this feature to get a quicker startup with -AnnDatabase changednmysql> select user,host from user; n+-------+-----------------------+n| user | host |n+-------+-----------------------+n| zhong | % |n| root | 127.0.0.1 |n| root | ::1 |n| | localhost |n| root | localhost |n| | localhost.localdomain |n| root | localhost.localdomain |n+-------+-----------------------+n7 rows in set (0.00 sec)nnmysql> flush privileges; nQuery OK, 0 rows affected (0.00 sec)nnmysql> quitnByen[zhong@bogon ~]$ service mysql start nRedirecting to /bin/systemctl start mysql.servicen
使用java寫的數據模擬工具將數據寫入到mysql中,先寫入到磁碟中測試。
最後成功寫入vmware中cento系統下的mysql資料庫中,
[zhong@bogon ~]$ mysql -uroot -prootnWarning: Using a password on the command line interface can be insecure.nWelcome to the MySQL monitor. Commands end with ; or g.nYour MySQL connection id is 10033nServer version: 5.6.36 MySQL Community Server (GPL)nnCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.nnOracle is a registered trademark of Oracle Corporation and/or itsnaffiliates. Other names may be trademarks of their respectivenowners.nnType help; or h for help. Type c to clear the current input statement.nnmysql> use logdata;nReading table information for completion of table and column namesnYou can turn off this feature to get a quicker startup with -AnnDatabase changednmysql> select count(*) from log_20170621;n+----------+n| count(*) |n+----------+n| 10002 |n+----------+n1 row in set (0.00 sec)n
設置MySQL密碼
Java寫的數據模擬工具下載
https://github.com/Jooeys/Java/blob/master/WebLogTools.zip推薦閱讀:
※未來想成為一名大數據架構師,可是不知如何在hadoop spark Storm中糾結?
※Apache kylin進階——Slow Query SQL改造篇
※Hadoop實現了雲計算中的哪些構件,又有哪些構件是沒有實現的,用Hadoop可以搭建一個完整的雲計算平台么?
※Azkaban入門篇
※世界沉醉在數據里