国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Hadoop平臺(tái)的用戶行為挖掘

2015-09-09 18:13:05曾志浩姚貝張瓊林孫琪
關(guān)鍵詞:單機(jī)海量日志

曾志浩+姚貝+張瓊林+孫琪

摘?要:隨著互聯(lián)網(wǎng)發(fā)展帶來(lái)的數(shù)據(jù)爆炸,使得Web日志的數(shù)據(jù)量也越來(lái)越大,如何從海量的Web日志中挖掘有價(jià)值的信息成為了目前研究的熱點(diǎn)。本文提出了基于Hadoop集群框架對(duì)Web日志進(jìn)行挖掘。實(shí)驗(yàn)結(jié)果表明,該集群系統(tǒng)既可以處理海量的web日志,同時(shí)也能夠挖掘出有價(jià)值的信息,并證實(shí)了利用sqoop在Hive倉(cāng)庫(kù)和傳統(tǒng)數(shù)據(jù)庫(kù)之間數(shù)據(jù)遷移的可行性。

關(guān)鍵字:Web日志;Hadoop;Sqoop;Hive;數(shù)據(jù)遷移

中圖分類(lèi)號(hào):TP391?????????????????????????文獻(xiàn)標(biāo)識(shí)碼:A

User?Behavior?Mining?Based?on?Hadoop?platform

Zeng?Zhihao,Yao?Bei,?Zhang?Qionglin,Sun?Qi

(School?of?Computer?and?Communication,?Hunan?University?of?Technology,?HuNan?Zhuzhou??412000,?China)

Abstract:?As?rapid?development?of?Internet?brings?the?data?explosion,make?web?log?data?is?becoming?bigger?and?bigger,?How?from?huge?amounts?of?Web?log?mining?valuable?information?become?the?focus?of?the?present?study.This?paper?presents?based?on?the?Hadoop?cluster?framework?for?Web?log?mining.Experimental?results?show?that,?this?cluster?system?can?processing?massive?web?log?data?,Also?its?can?be?mining?valuable?information.?And?confirmed?the?feasibility?the?data?migration?between?Hive?warehouse?and?traditional?database?by?use?sqoop.

Key??words?:?Web?log?;?Hadoop?;?Sqoop?;?Hive?;?Data?migration

1?引言

互聯(lián)網(wǎng)的快速發(fā)展,使得Web日志數(shù)據(jù)呈現(xiàn)出爆炸式的增長(zhǎng),這些海量的Web數(shù)據(jù)中蘊(yùn)含了大量的信息,這些信息對(duì)企業(yè)而言是一筆巨額的財(cái)富,企業(yè)的發(fā)展需要這些數(shù)據(jù)提供更好的戰(zhàn)略決策支持,因此對(duì)這些數(shù)據(jù)具有極大地挖掘需求;這使得從海量的Web數(shù)據(jù)中挖掘有用的信息成為了目前研究的熱點(diǎn),同時(shí)大規(guī)模的計(jì)算能力成為Web數(shù)據(jù)挖掘技術(shù)能否有效實(shí)現(xiàn)的外部需求[1]。

針對(duì)海量數(shù)據(jù)處理出現(xiàn)的技術(shù)問(wèn)題,以Hadoop[2]為代表的新技術(shù)得到了國(guó)內(nèi)外科技工作者的極大關(guān)注;Hadoop平臺(tái)的最大優(yōu)勢(shì)是它實(shí)現(xiàn)了“計(jì)算靠近存儲(chǔ)”的思想[3],此思想省去了海量數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)倪@一大開(kāi)銷(xiāo),大大減少了數(shù)據(jù)處理時(shí)間,同時(shí)其并行化的數(shù)據(jù)處理方式非常適用于處理海量數(shù)據(jù)。

針對(duì)Hadoop分布式處理海量數(shù)據(jù)的優(yōu)勢(shì),國(guó)內(nèi)外一些學(xué)者紛紛對(duì)Hadoop平臺(tái)進(jìn)行了相關(guān)研究,文獻(xiàn)[4]基于Hadoop平臺(tái),實(shí)現(xiàn)了對(duì)Web數(shù)據(jù)的并行化處理,提高了數(shù)據(jù)運(yùn)行處理時(shí)間;文獻(xiàn)[5]通過(guò)基于Hadoop平臺(tái),設(shè)計(jì)了一個(gè)用于處理海量搜索日志的分析平臺(tái);文獻(xiàn)[1,?6]基于Hadoop平臺(tái)進(jìn)行了Web日志挖掘?qū)嶒?yàn),并證實(shí)了Hadoop平臺(tái)的可用性。

本文基于Hadoop平臺(tái)首先對(duì)Web日志進(jìn)行了數(shù)據(jù)清洗,根據(jù)數(shù)據(jù)挖掘的具體需要,過(guò)濾冗余、異?;蛘吲c挖掘目的無(wú)關(guān)的信息,然后通過(guò)HIVE數(shù)據(jù)倉(cāng)庫(kù)分析用戶行為的關(guān)鍵指標(biāo),對(duì)Web日志數(shù)據(jù)進(jìn)行用戶行為挖掘,利用MySQL進(jìn)行挖掘結(jié)果展示,同時(shí)利用了sqoop[7]組件在關(guān)系型數(shù)據(jù)庫(kù)與非關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行了數(shù)據(jù)遷移。

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

Hadoop是Apache軟件基金會(huì)旗下的一個(gè)分布式計(jì)算平臺(tái)。以Hadoop分布式文件系統(tǒng)(Hadoop?Distributed?File?System,HDFS)和MapReduce[8](Google?MapReduce的開(kāi)源實(shí)現(xiàn))為核心的Hadoop為用戶提供了系統(tǒng)底層細(xì)節(jié)透明的分布式基礎(chǔ)架構(gòu)[2]。

對(duì)于Hadoop的文件系統(tǒng)HDFS具有高容錯(cuò)性的特點(diǎn),它可以設(shè)計(jì)部署在低廉的硬件上,同時(shí)它可以通過(guò)提供高吞吐率來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù)。

MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集的并行運(yùn)算,它主要以對(duì)數(shù)據(jù)進(jìn)行映射(Map)、化簡(jiǎn)(Reduce)來(lái)實(shí)現(xiàn)計(jì)算,即MapReduce在執(zhí)行時(shí)先指定一個(gè)Map(映射)函數(shù),把輸入鍵值對(duì)映射成一組新的鍵值對(duì),經(jīng)過(guò)一定處理后交給Reduce,Reduce對(duì)相同Key下的所有value進(jìn)行處理后再輸出鍵值對(duì)作為最終的結(jié)果。

Hive[9]是一個(gè)基于Hadoop文件系統(tǒng)之上的數(shù)據(jù)倉(cāng)庫(kù)架構(gòu),它為數(shù)據(jù)倉(cāng)庫(kù)的管理提供了許多功能:數(shù)據(jù)ETL(抽取、轉(zhuǎn)換和加載)工具、數(shù)據(jù)存儲(chǔ)管理和大型數(shù)據(jù)集的查詢和分析能力;同時(shí)Hive定義了類(lèi)SQL的語(yǔ)言—Hive?QL。

HBase是一種NoSQL存儲(chǔ)數(shù)據(jù)庫(kù),它可以用來(lái)快速隨機(jī)讀寫(xiě)大規(guī)模數(shù)據(jù),是一個(gè)高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用HBase技術(shù)可在廉價(jià)機(jī)器上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群[10]。HBase利用HDFS作為其文件存儲(chǔ)系統(tǒng),利用MapReduce來(lái)處理HBase中的海量數(shù)據(jù),利用Zookeeper作為協(xié)調(diào)工具。

Zookeeper是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn),是一個(gè)為分布式應(yīng)用所設(shè)計(jì)的開(kāi)源協(xié)調(diào)服務(wù),它包含一個(gè)簡(jiǎn)單的原語(yǔ)集,分布式應(yīng)用程序可以基于它實(shí)現(xiàn)同步服務(wù)、配置維護(hù)和命名服務(wù)等;用戶可以使用Zookeeper提供的接口方便地實(shí)現(xiàn)一致性、組管理、leader選舉及某些協(xié)議,同時(shí)Zookeeper不僅可以為單機(jī)提供服務(wù),同時(shí)也支持多機(jī)組成集群來(lái)提供服務(wù)。

Sqoop[7]是“SQL?to?Hadoop”的縮寫(xiě),是一款用于在Hadoop系統(tǒng)和結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)系統(tǒng)間進(jìn)行數(shù)據(jù)交換的軟件,它可以用于將傳統(tǒng)數(shù)據(jù)庫(kù)(如MySQL、Oracle)中的數(shù)據(jù)導(dǎo)入HDFS由MapReduce程序或Hive工具使用,并支持將處理后的結(jié)果數(shù)據(jù)導(dǎo)出到傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中[11]。

3用戶行為挖掘的關(guān)鍵指標(biāo)介紹

瀏覽量PV:頁(yè)面瀏覽量即為PV(Page?View),是指所有用戶在該網(wǎng)站瀏覽頁(yè)面的總和,一個(gè)獨(dú)立用戶每打開(kāi)一個(gè)頁(yè)面就被記錄1次;對(duì)于網(wǎng)站總瀏覽量,其可以作為考核用戶對(duì)于網(wǎng)站的興趣。同時(shí)對(duì)于網(wǎng)站運(yùn)營(yíng)者來(lái)說(shuō),更重要的是網(wǎng)站每個(gè)欄目下的瀏覽量。

注冊(cè)用戶數(shù):每一天網(wǎng)站新注冊(cè)的用戶人數(shù);運(yùn)營(yíng)者通過(guò)對(duì)注冊(cè)用戶數(shù)分析可以查看出網(wǎng)站推廣狀況。

IP數(shù):一天之內(nèi),訪問(wèn)網(wǎng)站的不同的獨(dú)立IP?個(gè)數(shù)總和;其中同一IP無(wú)論訪問(wèn)了幾個(gè)頁(yè)面,獨(dú)立IP?數(shù)均為1。

跳出率:只瀏覽了一個(gè)頁(yè)面便離開(kāi)了網(wǎng)站的訪問(wèn)次數(shù)占總的訪問(wèn)次數(shù)的百分比,即只瀏覽了一個(gè)頁(yè)面的訪問(wèn)次數(shù)?/?全部的訪問(wèn)次數(shù)匯總;跳出率是非常重要的訪客黏性指標(biāo),它顯示了訪客對(duì)網(wǎng)站的興趣程度,即跳出率越低說(shuō)明流量質(zhì)量越好,訪客對(duì)網(wǎng)站的內(nèi)容越感興趣,這些訪客越可能是網(wǎng)站的有效用戶、忠實(shí)用戶;該指標(biāo)也可以衡量網(wǎng)絡(luò)營(yíng)銷(xiāo)的效果,指出有多少訪客被網(wǎng)絡(luò)營(yíng)銷(xiāo)吸引到宣傳產(chǎn)品頁(yè)或網(wǎng)站上之后,又流失掉的人數(shù)。

4用戶行為挖掘的平臺(tái)設(shè)計(jì)

日志采集模塊:負(fù)責(zé)將各個(gè)前端web服務(wù)器中的日志傳送到日志接收節(jié)點(diǎn)上。這里可以采用每天定時(shí)的將各個(gè)服務(wù)器中的日志傳送到接收節(jié)點(diǎn)。對(duì)于日志服務(wù)器數(shù)據(jù)較小時(shí),接收節(jié)點(diǎn)可以通過(guò)shell命令直接將日志數(shù)據(jù)上傳到HDFS中;如果日志服務(wù)器非常多,數(shù)據(jù)量大時(shí),可使用flume進(jìn)行數(shù)據(jù)處理。

日志清洗模塊:通過(guò)Hadoop的編程框架MapReduce對(duì)上傳到HDFS的原始數(shù)據(jù)進(jìn)行清洗;具體工作可分為兩個(gè)階段:Map階段和Reduce階段。這兩個(gè)階段分別用兩個(gè)函數(shù)來(lái)表示,即Map函數(shù)和Reduce函數(shù)。Map函數(shù)接收一個(gè)<key,value>形式的輸入,然后產(chǎn)生同樣為<key,value>形式的中間輸出,Hadoop會(huì)負(fù)責(zé)將所有具有相同中間key值的value集合到一起傳遞給Reduce函數(shù),Reduce函數(shù)接收一個(gè)如<key,(list?of?values)>形式的輸入,然后對(duì)這個(gè)value集合進(jìn)行處理并輸出結(jié)果,Reduce的輸出也是<key,value>形式的。

分別將三個(gè)<key,value>對(duì)標(biāo)記為<k1,v1>、<k2,v2>、<k3,v3>,以上數(shù)據(jù)處理流程可用圖1表示:

圖1??MapReduce程序數(shù)據(jù)變化的基本模型

查詢分析模塊:將清洗后的數(shù)據(jù)導(dǎo)入到Hive中,使用Hive對(duì)清洗后的數(shù)據(jù)進(jìn)行多維分析;并且將Hive返回的查詢結(jié)果以某種形式表現(xiàn)出來(lái),供用戶查看。用戶可在瀏覽器客戶端上輸入或選擇需要查詢的內(nèi)容。

結(jié)果顯示模塊:使用Sqoop將Hive中產(chǎn)生的分析結(jié)果導(dǎo)出到MySQL數(shù)據(jù)庫(kù)中;如果用戶需要查看詳細(xì)數(shù)據(jù),可以使用HBase數(shù)據(jù)庫(kù)進(jìn)行展示。

圖2所示的是整個(gè)系統(tǒng)的架構(gòu)圖。

圖2??系統(tǒng)架構(gòu)圖

5實(shí)驗(yàn)結(jié)果分析

為了測(cè)試系統(tǒng),我們?cè)跍y(cè)試平臺(tái)上做了實(shí)驗(yàn),分別利用幾組大小不同的數(shù)據(jù)分別在單機(jī)情況下和在集群情況下進(jìn)行了數(shù)據(jù)清洗時(shí)間消耗測(cè)試。

1?實(shí)驗(yàn)環(huán)境。本測(cè)試平臺(tái)實(shí)驗(yàn)環(huán)境中,單機(jī)配置為:處理器類(lèi)型,Intel(R)?Core(TM)2?Duo?CPU?E7500?@2.93GHz,內(nèi)存容量為2GB。集群配置是由三臺(tái)與單機(jī)配置相同的服務(wù)器組成,其中,一臺(tái)服務(wù)器是主節(jié)點(diǎn),另外兩臺(tái)服務(wù)器是從節(jié)點(diǎn);同時(shí)使用了Zookeeper組件對(duì)集群進(jìn)行了協(xié)調(diào)服務(wù)管理。在集群中所有的服務(wù)器都運(yùn)行在CentOS-6.4操作系統(tǒng)上,同時(shí)每臺(tái)服務(wù)器均安裝了hadoop-1.1.2和jdk-6u24-linux-i586和zookeeper-3.4.5,在三臺(tái)服務(wù)器中,主節(jié)點(diǎn)安裝了Hive-0.9.0、MySQL數(shù)據(jù)庫(kù)和Sqoop-1.4.3.bin_hadoop-1.0.0。本實(shí)驗(yàn)通過(guò)配置Eclipse的Hadoop應(yīng)用開(kāi)發(fā)環(huán)境進(jìn)行程序開(kāi)發(fā)的。

2?實(shí)驗(yàn)數(shù)據(jù)及內(nèi)容。本實(shí)驗(yàn)的數(shù)據(jù)來(lái)自于某論壇服務(wù)器上的日志數(shù)據(jù)。實(shí)驗(yàn)通過(guò)對(duì)論壇日志數(shù)據(jù)處理分析,來(lái)計(jì)算論壇關(guān)鍵指標(biāo),即瀏覽量、注冊(cè)用戶數(shù)、IP數(shù)、跳出率,最后通過(guò)對(duì)關(guān)鍵指標(biāo)分析,進(jìn)行用戶行為挖掘,將挖掘結(jié)果提供給運(yùn)營(yíng)者運(yùn)營(yíng)決策。

實(shí)驗(yàn)一 通過(guò)五組不同數(shù)據(jù)量大小的日志作為輸入,并統(tǒng)計(jì)出每組分別在Hadoop集群和傳統(tǒng)的基于單機(jī)模式下的數(shù)據(jù)清洗所消耗的時(shí)間,其結(jié)果如圖3所示。

圖3??單機(jī)與集群對(duì)比

實(shí)驗(yàn)二 分別在集群計(jì)算節(jié)點(diǎn)為1、2、3時(shí)對(duì)同一個(gè)Web日志進(jìn)行數(shù)據(jù)清洗處理,并分別統(tǒng)計(jì)數(shù)據(jù)清洗所消耗的時(shí)間;其結(jié)果如圖4所示。

圖4??節(jié)點(diǎn)個(gè)數(shù)不同對(duì)執(zhí)行時(shí)間的影響

3?實(shí)驗(yàn)結(jié)果分析。通過(guò)實(shí)驗(yàn)一結(jié)果分析,我們可以知道,如果數(shù)據(jù)量小于40M時(shí),Hadoop集群無(wú)法發(fā)揮其分布式處理海量數(shù)據(jù)的優(yōu)勢(shì),甚至其所消耗的時(shí)間大于單機(jī)處理所消耗的時(shí)間。但是,當(dāng)要處理的日志數(shù)據(jù)達(dá)到50M以上時(shí),Hadoop集群的并行化處理優(yōu)勢(shì)會(huì)隨著數(shù)據(jù)量的增加而顯示出來(lái)。通過(guò)實(shí)驗(yàn)二結(jié)果分析可知,對(duì)于同一數(shù)據(jù)量,隨著集群中計(jì)算節(jié)點(diǎn)的數(shù)量增加,數(shù)據(jù)清洗所消耗的時(shí)間明顯減少。

6結(jié)論

針對(duì)目前單機(jī)環(huán)境下無(wú)法處理海量Web數(shù)據(jù)的問(wèn)題,本文提出了基于Hadoop平臺(tái)的集群環(huán)境下處理海量Web數(shù)據(jù)的問(wèn)題,利用Hadoop集群的并行化處理海量數(shù)據(jù)的優(yōu)勢(shì),解決了單機(jī)模式下數(shù)據(jù)處理效率低下且無(wú)法解決海量數(shù)據(jù)的問(wèn)題。本文通過(guò)利用Hadoop集群環(huán)境,對(duì)Web日志數(shù)據(jù)進(jìn)行了相關(guān)數(shù)據(jù)清洗,得到運(yùn)營(yíng)者需求的關(guān)鍵指標(biāo);同時(shí)利用sqoop組件在Hive數(shù)據(jù)倉(cāng)庫(kù)和Mysql數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)遷移,大幅度提高了數(shù)據(jù)遷移效率,同時(shí)對(duì)處理關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)向非關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)遷移提供了一定參考價(jià)值。

參考文獻(xiàn)

[1]?李彬,劉莉莉.基于?MapReduce?的?Web?日志挖掘[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(22):?95-98.

[2]?陸嘉恒.?Hadoop?實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2012:2-7.

[3]?朱湘,金松昌,賈焰.?一種基于?Hadoop?平臺(tái)的海量?Web?數(shù)據(jù)挖掘系統(tǒng)研究與實(shí)現(xiàn)[C]//張新生.中國(guó)通信學(xué)會(huì)--第九屆中國(guó)通信學(xué)會(huì)學(xué)術(shù)年會(huì)論文集.?北京:北京郵電大學(xué)出版社,2012:72-76.

[4]?顧濤.?基于?Hadoop的Web信息提取和垃圾信息過(guò)濾研究與實(shí)現(xiàn)[D].?成都:電子科技大學(xué),2012.

[5]?趙龍.?基于hadoop的海量搜索日志分析平臺(tái)的設(shè)計(jì)和實(shí)現(xiàn)[D].?大連:大連理工大學(xué),2013.

[6]?程苗,陳華平.基于Hadoop的Web日志挖掘[J].計(jì)算機(jī)工程,2011,37(11):37-39.

[7]?Ting?K,?Cecho?J?J.?Apache?Sqoop?Cookbook[M].?"?O'Reilly?Media,?Inc.",?2013.

[8]?Dean?J,?Ghemawat?S.?MapReduce:?simplified?data?processing?on?large?clusters[J].?Communications?of?the?ACM?,2008,?51(1):?107-113.

[9]?Thusoo?A,?Sarma?J?S,?Jain?N,?et?al.?Hive:?a?warehousing?solution?over?a?map-reduce?framework[J].?Proceedings?of?the?VLDB?Endowment,?2009,?2(2):?1626-1629.

[10]?George?L.?HBase:?the?definitive?guide[M].?"?O'Reilly?Media,?Inc.",?2011.

[11]?陸嘉恒.?大數(shù)據(jù)挑戰(zhàn)與NoSQL數(shù)據(jù)庫(kù)技術(shù)[M].?北京:電子工業(yè)出版社,2013.

猜你喜歡
單機(jī)海量日志
一名老黨員的工作日志
熱連軋單機(jī)架粗軋機(jī)中間坯側(cè)彎廢鋼成因及對(duì)策
新疆鋼鐵(2021年1期)2021-10-14 08:45:36
扶貧日志
心聲歌刊(2020年4期)2020-09-07 06:37:14
海量快遞垃圾正在“圍城”——“綠色快遞”勢(shì)在必行
宇航通用單機(jī)訂單式管理模式構(gòu)建與實(shí)踐
游學(xué)日志
水電的“百萬(wàn)單機(jī)時(shí)代”
能源(2017年9期)2017-10-18 00:48:22
一個(gè)圖形所蘊(yùn)含的“海量”巧題
一種海量衛(wèi)星導(dǎo)航軌跡點(diǎn)地圖匹配方法
筑路機(jī)械單機(jī)核算的思考與研究
施甸县| 新乡县| 文安县| 五台县| 甘泉县| 张家界市| 上栗县| 河西区| 确山县| 富宁县| 江华| 石楼县| 小金县| 阿坝| 微博| 新乐市| 阳曲县| 奉贤区| 灵璧县| 修水县| 呼玛县| 通化县| 瓦房店市| 双城市| 乌拉特前旗| 德化县| 呼玛县| 曲麻莱县| 南木林县| 湖南省| 邵武市| 合作市| 康平县| 成都市| 东丽区| 临湘市| 时尚| 洛阳市| 咸丰县| 萨迦县| 封开县|