張俊瑞,代 洋
(1.晉中學(xué)院信息技術(shù)與工程學(xué)院,山西 晉中 030619;2. 北京易匯眾盟網(wǎng)絡(luò)技術(shù)有限公司,北京 100089)
基于Hadoop平臺(tái)的Web日志業(yè)務(wù)分析
張俊瑞1,代 洋2
(1.晉中學(xué)院信息技術(shù)與工程學(xué)院,山西 晉中 030619;2. 北京易匯眾盟網(wǎng)絡(luò)技術(shù)有限公司,北京 100089)
通過(guò)分析網(wǎng)站日志文件,可以清楚地知道一個(gè)網(wǎng)站每天的頁(yè)面訪問(wèn)量、用戶訪問(wèn)量、獨(dú)立IP數(shù)、用戶通過(guò)什么渠道和設(shè)備訪問(wèn)網(wǎng)站等,這樣企業(yè)就可以通過(guò)對(duì)網(wǎng)站日志文件進(jìn)行數(shù)據(jù)分析進(jìn)而對(duì)網(wǎng)站進(jìn)行多方面的優(yōu)化建設(shè)。利用Hadoop平臺(tái)存儲(chǔ)并計(jì)算海量日志文件,利用Hive進(jìn)行數(shù)據(jù)倉(cāng)庫(kù)建設(shè)和數(shù)據(jù)分析,使得數(shù)據(jù)更具有說(shuō)服力,真正實(shí)現(xiàn)了讓數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù),進(jìn)而驅(qū)動(dòng)公司發(fā)展。
大數(shù)據(jù)平臺(tái);日志業(yè)務(wù)分析;數(shù)據(jù)倉(cāng)庫(kù)
Web 2.0時(shí)代的到來(lái),使網(wǎng)站日志數(shù)據(jù)的增長(zhǎng)速度及交互功能都發(fā)生了很大的變化。利用傳統(tǒng)的日志分析工具很難實(shí)現(xiàn)PB數(shù)量級(jí)的網(wǎng)站日志的處理,因此需要優(yōu)秀、耐用且時(shí)效性強(qiáng)的處理平臺(tái)和分析工具來(lái)進(jìn)行數(shù)據(jù)處理和分析,以便更好地完成網(wǎng)站的優(yōu)化,提高網(wǎng)站訪問(wèn)量,創(chuàng)造更大的商業(yè)價(jià)值。
從互聯(lián)網(wǎng)發(fā)展趨勢(shì)和行業(yè)內(nèi)成功經(jīng)驗(yàn)及案例來(lái)看,Hadoop+Hive已成為高效處理龐大數(shù)量級(jí)數(shù)據(jù)的平臺(tái)和分析工具。本文通過(guò)Hadoop+Hive實(shí)現(xiàn)Web日志業(yè)務(wù)分析及其可視化。首先搭建大數(shù)據(jù)集群平臺(tái)Hadoop,其次建設(shè)數(shù)據(jù)倉(cāng)庫(kù)Hive對(duì)網(wǎng)絡(luò)日志進(jìn)行分析,最后將一些業(yè)務(wù)指標(biāo)通過(guò)可視化技術(shù)直觀展示出來(lái)。
物理機(jī)硬件:處理器采用Intel(R) Core (TM) i7-4500u 1.8GHz,內(nèi)存8.0GB,操作系統(tǒng)Windows 8。
虛擬機(jī)系統(tǒng):基于VMware Workstation創(chuàng)建了2臺(tái)虛擬機(jī)器,每臺(tái)的配置為2個(gè)單核CPU,2G內(nèi)存,30G硬盤,Ubuntu 14.0.4操作系統(tǒng)。
Hadoop[1]運(yùn)行在Linux系統(tǒng)上,所以O(shè)S選用Ubuntu 14.0.4,其次Hadoop是基于Java語(yǔ)言開發(fā)的,所以必須安裝JDK 1.7提供Java運(yùn)行環(huán)境。安裝Hadoop包含HDFS、MapReduce、YARN三部分,其中HDFS提供分布式存儲(chǔ)環(huán)境,MapReduce提供批處理計(jì)算,而YARN調(diào)度資源;安裝Hive建設(shè)數(shù)據(jù)倉(cāng)庫(kù)對(duì)網(wǎng)站日志進(jìn)行數(shù)據(jù)分析得出對(duì)應(yīng)的業(yè)務(wù)指標(biāo);通過(guò)Sqoop將數(shù)據(jù)倉(cāng)庫(kù)中表的數(shù)據(jù)導(dǎo)入到MySQL中。平臺(tái)規(guī)劃如表1所示。
表1 平臺(tái)規(guī)劃
大數(shù)據(jù)平臺(tái)的系統(tǒng)架構(gòu)從底端到上層分為五層,平臺(tái)架構(gòu)圖如圖1所示。
1) 數(shù)據(jù)采集層:將原始網(wǎng)站日志通過(guò)腳本語(yǔ)言代碼按時(shí)從Web服務(wù)器上采集到Linux文件系統(tǒng)中。
2) 數(shù)據(jù)存儲(chǔ)層:在數(shù)據(jù)采集層的基礎(chǔ)上,通過(guò)ETL進(jìn)行數(shù)據(jù)處理,形成供上層進(jìn)行離線計(jì)算和業(yè)務(wù)分析的數(shù)據(jù)集,并最后將其存儲(chǔ)在HDFS分布式文件系統(tǒng)之中。
3) 數(shù)據(jù)分析層:數(shù)據(jù)倉(cāng)庫(kù)是面向業(yè)務(wù)決策的,通過(guò)Hive數(shù)據(jù)倉(cāng)庫(kù)對(duì)網(wǎng)絡(luò)日志進(jìn)行離線分析,得出一些業(yè)務(wù)指標(biāo)用于決策。
4) 數(shù)據(jù)共享層:介于數(shù)據(jù)分析層和數(shù)據(jù)應(yīng)用層中間的橋梁,通過(guò)Sqoop將數(shù)據(jù)分析層的結(jié)果傳輸?shù)組ySQL數(shù)據(jù)庫(kù)中,以便于數(shù)據(jù)應(yīng)用層的使用。
5)數(shù)據(jù)應(yīng)用層:數(shù)據(jù)產(chǎn)生價(jià)值的出口,其將最終的分析結(jié)果通過(guò)可視化技術(shù)展示出來(lái),發(fā)揮出數(shù)據(jù)驅(qū)動(dòng)決策的力量。
圖1 平臺(tái)架構(gòu)圖
1) 創(chuàng)建Hadoop用戶并安裝Java環(huán)境,具體步驟為:
a) 創(chuàng)建用戶名,使用/bin/bash/作為shell。
b) 為Hadoop用戶增加管理員權(quán)限。
c) 對(duì)Hadoop用戶設(shè)置密碼。
d) 安裝JDK 1.7版本。
2) 網(wǎng)絡(luò)配置:將集群所有的節(jié)點(diǎn)配置在同一局域網(wǎng)中,才能實(shí)現(xiàn)節(jié)點(diǎn)之間的互相連接,所以將Ubuntu的網(wǎng)絡(luò)配置修改為橋接(Bridge)模式。
3) 安裝SSH并配置SSH無(wú)密碼登錄節(jié)點(diǎn),具體步驟為:
a) 安裝SSH,生成Master節(jié)點(diǎn)的公鑰,Master可以無(wú)密碼ssh本機(jī)。
b) 配置Master節(jié)點(diǎn),使Master節(jié)點(diǎn)可以無(wú)密碼ssh節(jié)點(diǎn)Slave,在Slave節(jié)點(diǎn)上,將ssh公鑰加入授權(quán)。
c) 驗(yàn)證。在Master節(jié)點(diǎn)上ssh節(jié)點(diǎn)Slave。
4) 安裝Hadoop,配置集群環(huán)境,具體步驟為:
a) 安裝Hadoop,修改文件權(quán)限,配置環(huán)境變量,使環(huán)境變量生效。
b) 修改集群配置文件,配置集群環(huán)境,修改core-site.xml和hdfs-site.xml,設(shè)置備份一份,修改mapred-site.xml和yarn-site.xml。
c) 將Master節(jié)點(diǎn)上的Hadoop文件夾復(fù)制到Slave節(jié)點(diǎn)上。
總之,在高中語(yǔ)文教學(xué)過(guò)程中關(guān)注生命體驗(yàn),不僅體現(xiàn)了語(yǔ)文學(xué)科的人文性特點(diǎn),而且有助于學(xué)生形成正確的生命價(jià)值觀。語(yǔ)文教師應(yīng)將生命體驗(yàn)不斷地滲透教學(xué)過(guò)程中,培養(yǎng)學(xué)生的生命情懷,這樣既可以讓他們學(xué)到知識(shí),實(shí)現(xiàn)既定的教學(xué)目標(biāo),也能讓他們學(xué)會(huì)認(rèn)識(shí)生命的價(jià)值,獲得生命的成長(zhǎng),不斷向著理想的人生進(jìn)發(fā)。
5) 啟動(dòng)Hadoop集群,格式化Master節(jié)點(diǎn)上的namenode,在Master節(jié)點(diǎn)上啟動(dòng)Hadoop。
網(wǎng)站日志又叫做服務(wù)器日志,是記錄web服務(wù)器接收處理請(qǐng)求以及運(yùn)行時(shí)錯(cuò)誤等各種原始信息的以.log結(jié)尾的文件[2]。網(wǎng)站日志包含9項(xiàng)內(nèi)容,用空格分隔,分別為:IP地址、用戶標(biāo)識(shí)、訪問(wèn)時(shí)間及時(shí)區(qū)、請(qǐng)求的頁(yè)面、請(qǐng)求狀態(tài)碼、返回文件的大小、鏈接來(lái)源、瀏覽器信息。
2.2.1 PV
PV(Page View)是頁(yè)面瀏覽次數(shù),網(wǎng)站每進(jìn)行一次頁(yè)面刷新PV+1。對(duì)所有訪問(wèn)者來(lái)說(shuō),PV值是指其在一天中訪問(wèn)頁(yè)面的總和,它是衡量網(wǎng)站活躍程度的指標(biāo)。通過(guò)對(duì)IP地址進(jìn)行計(jì)數(shù),從日志中獲取訪問(wèn)次數(shù)可以得到PV的值。PV是衡量網(wǎng)站流量的兩項(xiàng)最基本指標(biāo)之一。
2.2.2 UV
UV(Unique Visitor)即獨(dú)立訪客數(shù),指一天內(nèi)訪問(wèn)網(wǎng)站的人數(shù)。一天之中,UV只記錄進(jìn)入網(wǎng)站的具備獨(dú)立設(shè)備標(biāo)識(shí)的訪問(wèn)者的數(shù)量,當(dāng)獨(dú)立訪客第二次進(jìn)行訪問(wèn)時(shí)則不計(jì)數(shù)。UV可以體現(xiàn)用戶對(duì)網(wǎng)站的關(guān)注程度,是衡量網(wǎng)站流量的兩項(xiàng)最基本指標(biāo)之一。
2.2.3 獨(dú)立IP數(shù)
2.2.4 流量來(lái)源
流量來(lái)源是指用戶通過(guò)什么渠道訪問(wèn)網(wǎng)站。通過(guò)網(wǎng)站日志的referer聚合之后可以分析出網(wǎng)站的流量來(lái)源。Referer表示該請(qǐng)求日志從哪里來(lái),它可以分析網(wǎng)站的訪問(wèn)來(lái)源,還可以用于分析用戶偏好等,是網(wǎng)站廣告投放評(píng)估的重要指標(biāo)[4]。網(wǎng)站流量來(lái)源反映了用戶通過(guò)什么途徑訪問(wèn)了此網(wǎng)站。
2.2.5 移動(dòng)設(shè)備類型
該指標(biāo)統(tǒng)計(jì)的是用戶訪問(wèn)網(wǎng)站所使用的不同設(shè)備的類型,如Android手機(jī)、Mac筆記本電腦等。通過(guò)對(duì)User Agent的匹配得出不同的移動(dòng)設(shè)備類型,對(duì)設(shè)備類型占比進(jìn)行統(tǒng)計(jì)和分析,針對(duì)設(shè)備類型占比高的設(shè)備具有的瀏覽器兼容性問(wèn)題,必須優(yōu)先對(duì)其進(jìn)行處理并優(yōu)化網(wǎng)站。
2.3.1 前期準(zhǔn)備
1) 啟動(dòng)大數(shù)據(jù)平臺(tái)。在Master節(jié)點(diǎn)上啟動(dòng)NameNode、SecondaryNameNode和ResourceManager,在Slave節(jié)點(diǎn)上啟動(dòng)DataNode、NodeManager,使集群良好的運(yùn)行,然后在Master節(jié)點(diǎn)上啟動(dòng)Hive。
2) 使用Extract.sh腳本文件對(duì)原始日志進(jìn)行數(shù)據(jù)抽樣,得到一周的日志數(shù)據(jù),將抽樣后的網(wǎng)站日志數(shù)據(jù)的日期通過(guò)sed進(jìn)行日期時(shí)間處理。
3) 通過(guò)Transform.sh腳本文件對(duì)一周的日志數(shù)據(jù)進(jìn)行清洗,通過(guò)Python正則匹配,最終輸出規(guī)范化的日志數(shù)據(jù)格式,提高加載的效率,方便將處理好的規(guī)范化的數(shù)據(jù)加載至數(shù)據(jù)倉(cāng)庫(kù)ODS層中。
2.3.2 數(shù)據(jù)倉(cāng)庫(kù)建設(shè)
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策[5]。本文的數(shù)據(jù)倉(cāng)庫(kù)分為ODS(Operational Data Store)層、DW(Data Warehouse)層和DM(Data Mining)層。
數(shù)據(jù)倉(cāng)庫(kù)的建設(shè)步驟為:
1) 將進(jìn)行過(guò)數(shù)據(jù)清洗后的原始日志進(jìn)行源數(shù)據(jù)導(dǎo)入。
2)將源數(shù)據(jù)存儲(chǔ)在原始日志表(ods_weblog),然后對(duì)原始日志表進(jìn)行更深層次的拆解,將request請(qǐng)求進(jìn)行匹配得出請(qǐng)求路徑,最終得到請(qǐng)求頁(yè)面解析表。
3) 在dw_weblog_parser的基礎(chǔ)上,通過(guò)對(duì)agent字段進(jìn)行模式匹配,可以得到用戶訪問(wèn)網(wǎng)站的移動(dòng)設(shè)備類型。網(wǎng)站的請(qǐng)求包含特定的模板,通過(guò)+wp-可以進(jìn)行過(guò)濾,最終得到dw_weblog_info表。
4) 通過(guò)對(duì)referer進(jìn)行聚合,可以得到一周之間的流量來(lái)源表。
5) 通過(guò)對(duì)device進(jìn)行聚合,可以得到一周之間的設(shè)備類型表。
6) 運(yùn)用業(yè)務(wù)指標(biāo)定義,對(duì)不同設(shè)備標(biāo)識(shí)進(jìn)行計(jì)數(shù)得到UV,對(duì)IP地址進(jìn)行計(jì)數(shù)得到PV,對(duì)不同的IP地址進(jìn)行計(jì)數(shù)得到IP。通過(guò)對(duì)一周時(shí)間的數(shù)據(jù)進(jìn)行分析,即可得到一周之中每天的UV、PV、IP,如圖2所示。
圖2 日志KPI分析過(guò)程
基于Hadoop集群平臺(tái),通過(guò)HDFS存儲(chǔ)海量日志文件,在Hive上構(gòu)建一個(gè)網(wǎng)絡(luò)日志數(shù)據(jù)倉(cāng)庫(kù)是十分高效的,通過(guò)MR處理大量數(shù)據(jù)時(shí)性能的提高非??捎^。通過(guò)數(shù)據(jù)倉(cāng)庫(kù)Hive對(duì)網(wǎng)絡(luò)日志文件進(jìn)行多維度分析,一方面可以提高數(shù)據(jù)分析的效率,另一方面可以通過(guò)數(shù)據(jù)挖掘出日志文件隱藏的價(jià)值,利用其結(jié)果可以進(jìn)行網(wǎng)站的數(shù)據(jù)化運(yùn)營(yíng),以便更好地對(duì)網(wǎng)站進(jìn)行優(yōu)化,也有利于網(wǎng)站的長(zhǎng)遠(yuǎn)發(fā)展。
[1] 程苗,陳華平.基于Hadoop的Web日志挖掘[J].計(jì)算機(jī)工程,2011,37(11):37-39.
[2] 李鋰.淺議搜索引擎優(yōu)化策略[J].中小企業(yè)管理與科技,2008(30):239-239.
[3] 江三鋒,王元亮.基于Hive的海量web日志分析系統(tǒng)設(shè)計(jì)研究[J].軟件,2015,36(04):93-96.
[4] 李妹芳.ODPS權(quán)威指南:阿里大數(shù)據(jù)平臺(tái)應(yīng)用開發(fā)實(shí)踐[M].北京:人民郵電出版社,2015.
[5] 朱宏儒.信息技術(shù)在銀行信貸業(yè)務(wù)中的運(yùn)用[D].上海:華東理工大學(xué),2005.
AnalysisofWebLogServiceBasedonHadoopPlatform
Zhang Junrui1, Dai Yang2
(1.SchoolofInformationTechnologyandEngineering,JinzhongUniversity,JinzhongShanxi030619,China;2.BeijingZMTNetworkTechnologyCo.,Ltd.,Beijing100089,China)
By analyzing the web log file, some data of a website daily could be obtained, such as amount of page visit, independent IP numbers, number of user visiting, what channels and devices users access to the website. In this way, the enterprise could analyze the data of the website log file and optimize the website in many aspects. Hadoop platform is used to store and calculate massive log files, the data warehouse construction and data analysis are carried out by using Hive. which would make data more convincing and results more intuitive. It really enables the realizing of data driven-business and promotes the company's development.
big data platform;log business analysis;visualization;data warehouse
2017-10-30
張俊瑞(1980- ),女,山西襄汾人,講師,碩士研究生,主要研究領(lǐng)域?yàn)閿?shù)據(jù)挖掘、智能軟件技術(shù)。
1674- 4578(2017)06- 0071- 03
TP311
A