基於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-4750HQ

CPU速度:2GHz-3.2GHz

顯卡: 英特爾銳炬Pro5200核芯顯卡

核心:四核

內存容量:8GB

內存類型:DDR3L 1600

硬碟容量:500GB

軟體環境:

虛擬化技術環境搭建:Vmwareworkstation +Centos 7

可視化資料庫訪問工具:Navicat premium 11.2 x64

(下載鏈接:pan.baidu.com/s/1cfFeVW 密碼:tirb)

Windows 上的SFTP、FTP 文件傳輸工具:Xftp 5

終端控制台:Xshell 5

Java開發IDE:Eclipse neon

Python科學計算環境以及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 dev.mysql.com/get/mysql

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

# yum install mysql-community-server

成功安裝之後重啟mysql服務

# service mysqld restart

初次安裝mysql是root賬戶是沒有密碼的

設置密碼的方法

# mysql -uroot

mysql> 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寫的數據模擬工具下載

github.com/Jooeys/Java/
推薦閱讀:

未來想成為一名大數據架構師,可是不知如何在hadoop spark Storm中糾結?
Apache kylin進階——Slow Query SQL改造篇
Hadoop實現了雲計算中的哪些構件,又有哪些構件是沒有實現的,用Hadoop可以搭建一個完整的雲計算平台么?
Azkaban入門篇
世界沉醉在數據里

TAG:Hadoop | CentOS | MySQL |