鄧小盾
(西安外事學(xué)院 陜西西安710077)
一種基于大數(shù)據(jù)的網(wǎng)絡(luò)日志分析模型構(gòu)建研究
鄧小盾
(西安外事學(xué)院 陜西西安710077)
針對(duì)海量web日志數(shù)據(jù)在存儲(chǔ)和計(jì)算方面存在的問(wèn)題,結(jié)合當(dāng)前的大數(shù)據(jù)技術(shù),提出一種基于Hadoop與聚類分析的網(wǎng)絡(luò)日志分析模型。利用Hadoop中的MapReduce編程模型對(duì)海量Web日志進(jìn)行處理;利用HDFS結(jié)合的方式對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ);利用聚類分析算法構(gòu)建web日志分析模型,對(duì)用戶行為進(jìn)行分析。最后通過(guò)搭建Hadoop測(cè)試環(huán)境對(duì)日志分析系統(tǒng)功能進(jìn)行測(cè)試,并與單機(jī)系統(tǒng)比較,驗(yàn)證了該設(shè)計(jì)方案的優(yōu)勢(shì)。
大數(shù)據(jù);web日志;MapReduce編程模型;HDFS;聚類分析
隨著我國(guó)信息技術(shù)的不斷發(fā)展,在各個(gè)企業(yè)、公共部門等結(jié)構(gòu)內(nèi)部網(wǎng)絡(luò)中,積累了大量的軟件和硬件資源,如交換機(jī)、路由器、防火墻PC服務(wù)器、Unix小型機(jī)、各類業(yè)務(wù)應(yīng)用系統(tǒng)、中間件、數(shù)據(jù)庫(kù)等。這些設(shè)備每天持續(xù)不斷產(chǎn)生大量日志,并對(duì)這些日志進(jìn)行記錄。對(duì)于日志文件,作為不同軟硬件資源運(yùn)行中對(duì)故障問(wèn)題和用戶行為記錄的一個(gè)重要工具,受到廣泛的關(guān)注。通過(guò)日志可監(jiān)控系統(tǒng)運(yùn)行,查看不同硬件的故障,并保護(hù)系統(tǒng)的安全等,從而發(fā)現(xiàn)其中的異常行為,為及時(shí)處置網(wǎng)絡(luò)安全事件提供參考。而隨著大量日志的產(chǎn)生,日志的存儲(chǔ)開始由原來(lái)的GB開始往TB或PB級(jí)別發(fā)展。同時(shí),傳統(tǒng)日志分析中采用的單機(jī)技術(shù)對(duì)海量數(shù)據(jù)進(jìn)行處理,這給數(shù)據(jù)存儲(chǔ)和分析帶來(lái)很大的技術(shù)瓶頸。對(duì)此,針對(duì)這些問(wèn)題,大數(shù)據(jù)技術(shù)開始被人們關(guān)注,并應(yīng)用到對(duì)海量數(shù)據(jù)的處理中,典型的代表則是谷歌Hadoop平臺(tái)下的Google MapReduce和GFS等存儲(chǔ)工具。在Hadoop平臺(tái)下,集成了對(duì)數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)處理和數(shù)據(jù)管理等全部功能,并成為了當(dāng)前大數(shù)據(jù)應(yīng)用的標(biāo)準(zhǔn),特別是在對(duì)海量數(shù)據(jù)的搜索、挖掘和分析。
對(duì)此,本文針對(duì)傳統(tǒng)日志分析的缺陷,從web日志分析角度出發(fā),在Hadoop平臺(tái)下,提出一種基于MapReduce編程模型和聚類分析的行為日志模型,并對(duì)其進(jìn)行了詳細(xì)的實(shí)現(xiàn)。
本文提出的基于Hadoop平臺(tái)下的web日志分析系統(tǒng)主要包含以下幾個(gè)功能模塊:日志預(yù)處理模塊、日志存儲(chǔ)模塊、日志挖掘模塊。其中,日志預(yù)處理是數(shù)據(jù)挖掘的前提,對(duì)數(shù)據(jù)處理的好壞直接決定系統(tǒng)的運(yùn)行;數(shù)據(jù)存儲(chǔ)包含系統(tǒng)數(shù)據(jù)存儲(chǔ)架構(gòu),是系統(tǒng)運(yùn)行的保障;日志挖掘主要負(fù)責(zé)對(duì)預(yù)處理的文件進(jìn)行挖掘分析,從而挖掘出有用的信息。具體功能見如圖1所示。
圖1 系統(tǒng)功能需求分析
針對(duì)圖1所示的功能,設(shè)計(jì)出一款主要針對(duì)海量日志數(shù)據(jù)的用戶行為系統(tǒng),從而旨在改變傳統(tǒng)單機(jī)技術(shù)在海量數(shù)據(jù)分析方面存在的局限,提高數(shù)據(jù)分析和挖掘的效率。架構(gòu)具體見如圖2所示。
圖2 系統(tǒng)整體架構(gòu)設(shè)計(jì)
通過(guò)圖2看出,Hadoop集群層是整個(gè)日志行為分析系統(tǒng)的基礎(chǔ),為整個(gè)提供軟硬件和網(wǎng)絡(luò)支撐。在該層中由1個(gè)主服務(wù)器和N個(gè)從服務(wù)器組成;HDFS分布式文件處理系統(tǒng)主要負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),并提供與MapReduce層調(diào)用的接口;MapReduce計(jì)算層主要負(fù)責(zé)對(duì)海量數(shù)據(jù)采用映射/規(guī)約等方式進(jìn)行并行運(yùn)算,從而將任務(wù)分配給下屬的各個(gè)節(jié)點(diǎn),在通過(guò)處理后,將信息整合進(jìn)行整合得到最終結(jié)果;業(yè)務(wù)邏輯層主要利用Hadoop的集群環(huán)境對(duì)日志數(shù)據(jù)進(jìn)行存儲(chǔ),并運(yùn)用MapReduce的計(jì)算來(lái)分析日志用戶的行為偏好。
數(shù)據(jù)預(yù)處理作為該系統(tǒng)的一個(gè)重要模塊,是數(shù)據(jù)挖掘的基礎(chǔ)。本系統(tǒng)則將數(shù)據(jù)直接存入到HDFS文件系統(tǒng)中,默認(rèn)切分為每塊為64 MB大小的文件,保存在各個(gè)DataNode上。而為了加快對(duì)原始數(shù)據(jù)的清理和識(shí)別,引入MapReduce編程模型,其具體原理如圖3所示。
1)Map階段
在Map階段,主要輸入web日志中的每條記錄,輸出格式為<key,value>鍵值對(duì),其中key表示用戶ID,value表示<鏈接地址、上一跳鏈接地址、時(shí)間>。對(duì)于Map階段來(lái)看,其主要實(shí)現(xiàn)對(duì)數(shù)據(jù)的清理。具體步驟為:
①對(duì)web日志進(jìn)行切分處理,并分割不同數(shù)據(jù)的屬性;
②判斷數(shù)據(jù)請(qǐng)求方式是否為“GET”,如不是,刪除該數(shù)據(jù),如是,繼續(xù)處理;
圖3 MapReduce工作原理
③判斷文件格式是否在要求的文件格式中,如沒(méi)有,刪除;
④判斷該日志返回的標(biāo)識(shí)碼是否在200~299之間,如不在,刪除,如在則按照標(biāo)準(zhǔn)格式輸出。
2)Reduce階段
Reduce階段主要完成對(duì)對(duì)應(yīng)的Map處理數(shù)據(jù)的合并。在該階段引入Combiner函數(shù)。具體步驟為:
①使用迭代器遍歷每個(gè)記錄的value,取出其中的ip,并將其放入到USIt容器中。
②遍歷USIt容器,判斷ip是否相同,如不同則視作新用戶。
對(duì)存儲(chǔ)模塊的設(shè)計(jì)則采用HDFS文件處理系統(tǒng)與Mysql組合的方式,其中HDFS主要負(fù)責(zé)存儲(chǔ)全部數(shù)據(jù),Mysql負(fù)責(zé)存儲(chǔ)從HDFS系統(tǒng)中導(dǎo)出的數(shù)據(jù),從而為數(shù)據(jù)挖掘奠定基礎(chǔ)。為了將HDFS系統(tǒng)中的文件導(dǎo)入到Mysql中,引入sqoop工具,從而將HDFS中的數(shù)導(dǎo)入到Mysql中。具體實(shí)現(xiàn)架構(gòu)如圖4所示。
圖4 存儲(chǔ)架構(gòu)
在對(duì)大數(shù)據(jù)的挖掘中,常用的方法包括關(guān)聯(lián)規(guī)則、回歸分析、聚類等,其中K-means聚類是最為簡(jiǎn)單,也是最為高效的算法。其核心思想是以樣本空間中的個(gè)點(diǎn)作為中心點(diǎn),通過(guò)迭代,對(duì)其周圍的樣本進(jìn)行歸類并重新計(jì)算中心點(diǎn)的值,直到收斂。雖然該方法簡(jiǎn)單,但是在該算法中最為關(guān)鍵的K值往往是根據(jù)經(jīng)驗(yàn)來(lái)確定。為解決該問(wèn)題,通常會(huì)通過(guò)反復(fù)的實(shí)驗(yàn),從而取一個(gè)較好的聚類K值。對(duì)此本文結(jié)合以往的研究,提出一種最小最大距離算法對(duì)K值進(jìn)行確定。該方法的核心思想是在對(duì)web日志進(jìn)行聚類的過(guò)程中,選取原點(diǎn)作為初始點(diǎn)的參照點(diǎn),選擇一個(gè)最遠(yuǎn)和最近的點(diǎn)作為初始點(diǎn),計(jì)算數(shù)據(jù)集合中點(diǎn)到這兩點(diǎn)的距離。將K-means放到MapReduce中,具體算法則可以描述為如圖5所示。
圖5 基于K-means的MapReduce并行化處理
搭建基于Hadoop的平臺(tái),總共5臺(tái)計(jì)算機(jī),其中一臺(tái)為主服務(wù)器,其他的4臺(tái)為從服務(wù)器。安裝Java6版本,Mysql數(shù)據(jù)庫(kù)采用5.5版本,Hadoop采用2.3版本。
通過(guò)上述環(huán)境的搭建,可以得到如圖6所示的數(shù)據(jù)處理對(duì)比結(jié)果。
圖6 分布式和單機(jī)式數(shù)據(jù)處理結(jié)果對(duì)比圖
圖7 日志聚類結(jié)果
通過(guò)圖7可以看出,采用基于Hadoop的集群其數(shù)據(jù)處理的大小要遠(yuǎn)遠(yuǎn)大于傳統(tǒng)的單機(jī)處理方式。同時(shí)通過(guò)引入K-means算法對(duì)web文本日志進(jìn)行分析,得到總共5類不同的活躍用戶,其中每一類的數(shù)據(jù)都是通過(guò)IP解析得到,并得到第三類、第五類的訪問(wèn)最多,最值得我們關(guān)注。
針對(duì)傳統(tǒng)單機(jī)處理基礎(chǔ)存在的弊端,引入基于Hadoop的平臺(tái),從而大大提提高了數(shù)據(jù)處理的效率,同時(shí)引入K-means算法對(duì)日志進(jìn)行挖掘分析,取得良好的效果,可有效地根據(jù)用戶IP得到其行為特征,從而為大數(shù)據(jù)技術(shù)的進(jìn)一步利用提供了參考,也奠定了未來(lái)應(yīng)用的基礎(chǔ)。
[1]嚳巖龍,羅壯,楊說(shuō),等.基于hadoop的高性能海量數(shù)據(jù)處理平臺(tái)研究[J].計(jì)算機(jī)科學(xué),2013,40(3):100-103.
[2]周詩(shī)慧,殷建.Hadoop平臺(tái)下的并行Web日志挖掘算法[J].計(jì)算機(jī)工程,2013(6):43-46.
[3]馬漢達(dá),郝曉宇,馬仁慶.基于Hadoop的并行PSO-kmeans算法實(shí)現(xiàn)Web日志挖掘[J].計(jì)算機(jī)科學(xué),2015(S1):470-473.
[4]任凱,鄧武,俞琰.基于大數(shù)據(jù)技術(shù)的網(wǎng)絡(luò)日志分析系統(tǒng)研究[J].現(xiàn)代電子技術(shù),2016(2):39-41,44.
[5]于兆良,張文濤,葛慧,等.基于Hadoop平臺(tái)的日志分析模型[J].計(jì)算機(jī)工程與設(shè)計(jì),2016(2):338-344,428.
[6]張春生,郭長(zhǎng)杰,尹兆濤.基于大數(shù)據(jù)技術(shù)的IT基礎(chǔ)設(shè)施日志分析系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型電腦應(yīng)用,2016(6):49-52.
[7]陳潔,于永剛,劉明恒,等.安全管理平臺(tái)中基于云計(jì)算的日志分析系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程,2015(2):21-25.
[8]江小平,李成華,向文,等.k-means聚類算法的MapReduce并行化實(shí)現(xiàn)[J].華中科技大學(xué)學(xué)報(bào):自然科學(xué)版,2011(S1):120-124.
[9]周婷,張君瑛,羅成.基于Hadoop的K-means聚類算法的實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013(7):18-21.
[10]李洪成,吳曉平,陳燕.MapReduce框架下支持差分隱私保護(hù)的k-means聚類方法[J].通信學(xué)報(bào),2016(2):124-130.
[11]李歡,劉鋒,朱二周.基于改進(jìn)K-means算法的海量數(shù)據(jù)分析技術(shù)研究[J].微電子學(xué)與計(jì)算機(jī),2016(5):52-57.
[12]楊勇,任淑霞,冉娟,李春青.基于粒子群優(yōu)化的k-means改進(jìn)算法實(shí)現(xiàn)Web日志挖掘[J].計(jì)算機(jī)應(yīng)用,2016(S1):29-32,36.
[13]衣治安,王月.基于MapReduce的K_means并行算法及改進(jìn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2015(6):188-192.
[14]謝雪蓮,李蘭友.基于云計(jì)算的并行K-means聚類算法研究[J].計(jì)算機(jī)測(cè)量與控制,2014(5):1510-1512.
[15]何佩佩,謝穎華.云環(huán)境下K-means算法的并行化[J].微型機(jī)與應(yīng)用,2015(24):25-27,31.
Research on the construction of a network log analysis model based on large data
DENG Xiao-dun
(Xi'an International University,Xi'an710077,China)
In view of the problems existing in the storage and computation of massive web log data,a new network log analysis model based on Hadoop and cluster analysis is proposed.To deal with the massive Web log using MapReduce programming model in Hadoop;using the combination of HDFS for data storage;model Web log analysis algorithm based on clustering,user behavior analysis.Finally,the function of the log analysis system is tested by building the Hadoop test environment,and the advantages of the design scheme are verified by comparing with the single machine system.
big data;web log;mapReduce programming model;HDFS;cluster analysis
TN0
A
1674-6236(2017)23-0097-04
2016-10-11稿件編號(hào):201610039
2015—2016年度陜西省高教學(xué)會(huì)高水平民辦大學(xué)建設(shè)研究項(xiàng)目(15GJ044);2016年度西安市社會(huì)科學(xué)規(guī)劃基金項(xiàng)目(16IN13);2016年度陜西省教育廳科學(xué)研究項(xiàng)目(16JK2178)
鄧小盾(1979—),女,陜西涇陽(yáng)人,碩士,講師。研究方向:大數(shù)據(jù)、人工智能。