• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Hadoop-Streaming+LNMP的網(wǎng)站流量分析系統(tǒng)的設(shè)計與實現(xiàn)

      2018-02-09 17:54:48鄭騰霄
      現(xiàn)代計算機 2018年1期
      關(guān)鍵詞:日志頁面可視化

      鄭騰霄

      (四川大學計算機學院,成都 610000)

      0 引言

      隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,企業(yè)的門戶網(wǎng)站已成為對外宣傳、提升服務(wù)水平的重要途徑,網(wǎng)絡(luò)也已成為政府機關(guān)為公眾提供信息的重要渠道,及時對網(wǎng)站流量和用戶訪問情況進行統(tǒng)計分析,通過數(shù)據(jù)來分析用戶的瀏覽習慣,可對優(yōu)化網(wǎng)站運營架構(gòu)、調(diào)整推廣策略起到積極的作用[1]。

      網(wǎng)站流量統(tǒng)計是指在獲得網(wǎng)站訪問量等基本數(shù)據(jù)的情況下,對有關(guān)數(shù)據(jù)進行統(tǒng)計、分析,從而發(fā)現(xiàn)用戶訪問網(wǎng)站的規(guī)律[2]。網(wǎng)站流量統(tǒng)計又分為:PV(Page View),UV(Unique Visitor)。PV即頁面瀏覽量,用來衡量一個網(wǎng)站的網(wǎng)頁用戶訪問量,用戶每進行一次頁面刷新,就算作一次PV流量。UV即獨立訪客數(shù),代表訪問某個站點的不同IP地址的人數(shù)。

      通過對網(wǎng)站進行流量分析,可以刻畫出網(wǎng)站近期的運營情況,從而引導(dǎo)網(wǎng)站開發(fā),運營人員作出相關(guān)決策來改進網(wǎng)站的服務(wù),對網(wǎng)站維護,制定網(wǎng)站營銷策略提供有力的依據(jù),對網(wǎng)站的運營架構(gòu)進行調(diào)整,促進網(wǎng)站整體的改進。

      1 站點流量分析相關(guān)的評估指標

      站點流量分析有多重相關(guān)的評估指標,總體可以分為網(wǎng)站PV,UV維度,以及網(wǎng)站用戶維度,以下對這兩個維度分別進行介紹。

      1.1 網(wǎng)站PV,UV維度

      (1)網(wǎng)站每天(每周,每月)的PV。網(wǎng)站每天(每周,每月)所有頁面總共被訪問的次數(shù)。

      (2)網(wǎng)站每天(每周,每月)的UV。網(wǎng)站每天(每周,每月)所有頁面被獨立的IP所訪問的次數(shù)。

      (3)網(wǎng)站總PV,UV的環(huán)比情況。網(wǎng)站今天-昨天(本周-上周,本月-上月)的瀏覽量對比增長或者減少的百分比。

      (4)網(wǎng)站每天瀏覽量的變化趨勢。根據(jù)網(wǎng)站每天的訪問量繪制折線圖,刻畫出網(wǎng)站每天流量的走勢。

      (5)網(wǎng)站單獨頁面PV,UV分析。一個網(wǎng)站通常會有多個頁面,對各個頁面的瀏覽量進行分析可以更好地對網(wǎng)站進行分析。

      1.2 網(wǎng)站用戶維度

      (1)訪問者的來源[3]。分析訪問者的來源類型,來源類型分為搜索引擎、其他網(wǎng)站跳轉(zhuǎn)和直接輸入網(wǎng)址。

      (2)訪問者使用的設(shè)備。根據(jù)網(wǎng)站日志得到訪問者所使用的設(shè)備(電腦、手機型號、瀏覽器、操作系統(tǒng)等)。

      2 相關(guān)技術(shù)介紹

      2.1 Nginx服務(wù)器

      Nginx是一個雖然輕量級,但是性能比較高的Web服務(wù)器。有著并發(fā)能力強,占有內(nèi)存較少等特點。

      2.2 YAF框架

      YAF框架是一中用C語言編寫的PHP框架。所有的框架類,不需要編譯,在PHP啟動的時候加載,并常駐內(nèi)存。YAF框架還具有更短的內(nèi)存周轉(zhuǎn)周期,相比于原生的PHP框架,YAF框架的執(zhí)行速度更快,占用的內(nèi)存更少[4]。

      2.3 Hadoop Streaming框架

      Hadoop Streaming是Hadoop平臺提供的一種編程工具,它允許用戶使用任何可執(zhí)行文件或腳本作為Mapper和Reducer[5]。面對大小為數(shù)十G甚至上百G的日志文件,如果使用一個單機的程序去分析,時間復(fù)雜度會非常高,效率很低。本文通過使用Hadoop Streaming分布式計算框架,將單機的日志分析程序分布式并行運行,解決了單機分析比較大的日志文件速度極慢的問題。

      2.4 LNMP架構(gòu)

      LNMP就是指Linux系統(tǒng)下Nginx+MySQL+PHP這樣的網(wǎng)站服務(wù)器架構(gòu)[6]。

      3 系統(tǒng)架構(gòu)以及開發(fā)環(huán)境介紹

      3.1 系統(tǒng)架構(gòu)設(shè)計

      系統(tǒng)采用標準B/S三層結(jié)構(gòu)開發(fā),三層結(jié)構(gòu)分別為:用戶界面層(UI)、業(yè)務(wù)邏輯層和數(shù)據(jù)層。

      其中,數(shù)據(jù)層主要負責:數(shù)據(jù)拉取,分布式數(shù)據(jù)計算,數(shù)據(jù)入庫的操作。邏輯層主要負責系統(tǒng)頁面的路由,以及數(shù)據(jù)的獲取以及展現(xiàn),可視化之前的預(yù)處理等工作。UI層負責數(shù)據(jù)的可視化工作,繪制出數(shù)據(jù)的各種圖形,如圖1所示,下面詳細進行分析。

      圖1 數(shù)據(jù)傳輸層邏輯圖

      (1)數(shù)據(jù)層

      原始的日志數(shù)據(jù)存放于網(wǎng)站服務(wù)器所在的線上機上,通過Linux,crontab命令編寫例行化腳本每天定時拉取到HDFS上面,然后編寫相應(yīng)的腳本,通過Ha?doop Streaming計算框架對日志進行計算,結(jié)果存放于集群。然后同樣通過Linux下的Crontab命令,編寫Python腳本定時從線上集群下載文件到服務(wù)器。然后編寫Python腳本,首先使用open函數(shù)逐行讀取從集群下載的臨時文件,通過Python的ConfigParser類讀取配置文件獲得數(shù)據(jù)庫地址以及數(shù)據(jù)表名,并通過MySQLdb類的connect方法鏈接數(shù)據(jù)庫,最后通過exe?cutemany(sql,args)方法來將每行數(shù)據(jù)插入數(shù)據(jù)表,其中sql為插入的sql語句,valuse為Python的list數(shù)組,對應(yīng)數(shù)據(jù)表的每列的數(shù)據(jù)。

      (2)邏輯層

      用戶訪問系統(tǒng)的主頁時,Nginx服務(wù)器會根據(jù)主頁的url路由到對應(yīng)的action,然后加載smart模塊的對應(yīng)的tpl文件,然后觸發(fā)嵌入tpl文件中的js文件,然后組裝傳入的參數(shù),調(diào)用AJAX請求,然后Nginx服務(wù)器會再次根據(jù)AJAX路由到對應(yīng)的action,從數(shù)據(jù)庫中獲得相應(yīng)的數(shù)據(jù)返回給js。js中獲得返回的數(shù)據(jù)之后使用echart繪圖框架繪制相應(yīng)的圖形,根據(jù)設(shè)定的id,展示到相應(yīng)的tpl文件中的對應(yīng)的div控件上面。

      (3)UI層

      UI層主要負責頁面的展示。

      3.2 開發(fā)環(huán)境

      本系統(tǒng)采用Linux+Nginx+PHP+MySQL這樣的網(wǎng)站服務(wù)器架構(gòu)。首先,需要在Linux系統(tǒng)下安裝好MySQL,本系統(tǒng)采用5.1.45版本。然后安裝Nginx服務(wù)器,將框架的入口文件配置在Nginx服務(wù)器上。然后安裝PH以及所用到的AP框架。系統(tǒng)的前段頁面使用了smarty模板的技術(shù),所以還要安裝以及配置smarty模塊。

      4 系統(tǒng)詳細設(shè)計

      4.1 網(wǎng)站流量數(shù)據(jù)采集

      日志的初始地址位于線上機,為了使用Hadoop對日志進行分析,需要將其定時(每天)拉取到HDFS(Ha?doop分布式文件系統(tǒng)),本文使用Linux系統(tǒng)下的crontab命令來定時運行shell腳本的方法來實現(xiàn)。

      Crontab命令的配置如下:

      腳本的內(nèi)容如下:

      4.2 日志分析腳本

      Hadoop-Streaming是Hadoop平臺提供的一個編程工具。使用它可以讓任何語言的程序在Hadoop Map Reduce中運行。

      以上為分析日志的Hadoop-Streaming程序,可以指定maper與reducer的數(shù)量,輸入與輸出的集群目錄,以及用于計算的mapper與reducer程序。

      Mapper腳本的主要代碼如下:

      通過以上腳本,可以統(tǒng)計出每天網(wǎng)站的PV總量,其他的計算指標,比如網(wǎng)站總PV,UV等可以通過類似的方法得出,再次不一一贅述。

      4.3 數(shù)據(jù)入庫腳本

      在使用Hadoop-Streaming對日志分析完畢后,最后的輸出存放在Hadoop分布式文件存儲系統(tǒng),HDFS上面,為了將數(shù)據(jù)在Web頁面可視化展示,需要將數(shù)據(jù)存入數(shù)據(jù)庫中。本文的設(shè)計思路如下:首先使用ha?doop命令將HDFS上的文件下載到本地:

      數(shù)據(jù)表設(shè)計如下:

      表1 可視化系統(tǒng),后端數(shù)據(jù)庫設(shè)計

      其中,id是此數(shù)據(jù)表的自增主鍵,唯一標識了某一天的PV,或者UV訪問量;type字段標識了表中每一條數(shù)據(jù)對應(yīng)value字段所代表類型,type=1時代表當天的pv,type=2代表當天的u;value字段標識了每種數(shù)據(jù)的指標量;time代表本條數(shù)據(jù)所對應(yīng)的日期。

      4.4 系統(tǒng)界面展示模塊

      系統(tǒng)界面展示模塊采用了LNMP的架構(gòu)模型。LNMP就是指Linux系統(tǒng)下Nginx+MySQL+PHP這樣的網(wǎng)站服務(wù)器架構(gòu)[7]。這四種軟件均為免費開源軟件,組合到一起,成為一個免費、高效、擴展性強的網(wǎng)站服務(wù)系統(tǒng)。其中,后端使用的框架為YAF框架,前端使用到的技術(shù)有:smarty模板技術(shù),ajax技術(shù),JavaScript以及echarts數(shù)據(jù)可視化框架。Smarty是一個使用PHP寫出來的模板引擎,可以將HTML代碼與PHP代碼實現(xiàn)邏輯分離。AJAX可以通過與后端服務(wù)器的少量的數(shù)據(jù)交換來實現(xiàn)網(wǎng)頁的局部更新操作。JavaScrip是一種腳本語言,現(xiàn)已被廣泛的應(yīng)用于Web開發(fā)中,可以為網(wǎng)頁添加各種動態(tài)的功能,本文更是通過echarts數(shù)據(jù)可視化框架來繪制圖表讓頁面更加美觀。Echarts是一種可視化的框架,通過提供方便豐富的可視化圖表,極大縮短了用戶與數(shù)據(jù)的距離。

      前端展示效果如下:

      圖2 可視化系統(tǒng)前端展示效果

      5 結(jié)語

      基于Hadoop-Streaming+LNMP的網(wǎng)站流量分析系統(tǒng),使用Hadoop-Streaming這個Map-Reduce框架在網(wǎng)站運營過程中,在服務(wù)器上所產(chǎn)生的日志進行分析,得出一些網(wǎng)站運營情況的一些數(shù)據(jù)以及結(jié)論,然后通過LNMP架構(gòu),echarts數(shù)據(jù)可視化工具將這些數(shù)據(jù)展現(xiàn)出來,刻畫出網(wǎng)站運營過程當中所出現(xiàn)的問題,為網(wǎng)站運營人員作出相應(yīng)的運營決策提供了有效的參考以及依據(jù)。彌補了傳統(tǒng)的流量分析方法在大流量網(wǎng)站數(shù)據(jù)分析方面的缺陷。

      [1]杜曉春.基于Web的網(wǎng)站數(shù)據(jù)分析軟件Wysistat的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學,2010.

      [2]焦榮梅.淺談網(wǎng)站流量統(tǒng)計分析法[J].科技信息,2007(16):264.

      [3]馮英健.如何獲得網(wǎng)站流量統(tǒng)計數(shù)據(jù)[EB/OL].(2005-03-02)[2016-10-29].http://www.marketingman.net/FAQ/2005.htm.

      [4]Inacio C M,Trammell B.YAF:yet Another Flowmeter[C].Proceedings of the 24th International Conference on Large installation System Administration.USENIX Association,2010:1-16.

      [5]7.Zeng Z.Moodle 2 Distributed Computing Architecture Based on LNMP[J].Computer Era,2013.

      [6]王風玲.基于PHP+MYSQL的新聞發(fā)布系統(tǒng)的研究與實現(xiàn).計算機應(yīng)用與軟件,2012,36(24):42-44.

      [7]Zeng Z.Moodle 2 Distributed Computing Architecture Based on LNMP[J].Computer Era,2013.

      猜你喜歡
      日志頁面可視化
      大狗熊在睡覺
      刷新生活的頁面
      基于CiteSpace的足三里穴研究可視化分析
      基于Power BI的油田注水運行動態(tài)分析與可視化展示
      云南化工(2021年8期)2021-12-21 06:37:54
      一名老黨員的工作日志
      華人時刊(2021年13期)2021-11-27 09:19:02
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      基于CGAL和OpenGL的海底地形三維可視化
      “融評”:黨媒評論的可視化創(chuàng)新
      傳媒評論(2019年4期)2019-07-13 05:49:14
      游學日志
      一種基于粗集和SVM的Web日志挖掘模型
      金阳县| 德保县| 洪洞县| 松潘县| 抚松县| 郧西县| 苗栗县| 阿合奇县| 巴马| 通化县| 盘山县| 天长市| 文安县| 交城县| 新民市| 昌图县| 凤阳县| 喀什市| 台中县| 武汉市| 全南县| 镇江市| 苏尼特左旗| 舟山市| 慈溪市| 彩票| 巴青县| 永定县| 新闻| 麦盖提县| 崇明县| 高尔夫| 宁海县| 临洮县| 襄樊市| 神木县| 岳西县| 康乐县| 黄山市| 苍山县| 静宁县|