基于Hadoop的搜索引擎用戶行為分析
本文關(guān)鍵詞:基于Hadoop的搜索引擎用戶行為分析,由筆耕文化傳播整理發(fā)布。
基于Hadoop的搜索引擎用戶行為分析
建高可靠的分布式計算框架。面重點討論數(shù)據(jù)去重和熱榜分析算法實現(xiàn)。3.2.2 數(shù)據(jù)去重
Sogou數(shù)據(jù)集中含有大量重復記錄,比如:8510431220399626 [北京+天氣]?city=%B1%B1%BE%A9
8510431220399626 [北京+天氣]
以上2條記錄表示用戶連續(xù)點擊了結(jié)果集的2條鏈接,但在統(tǒng)計分析時只能看作一次查詢,需去除重復數(shù)據(jù)。采用MapReduce并行計算模型的數(shù)據(jù)去重流程如圖2所示。
步驟如下:
(1)首先上傳初始日志文件到HDFS,默認將逐行讀取日志文件塊(默認大小為64MB)并將行號及該行內(nèi)容映射為初始鍵值對輸入,Map函數(shù)將對值部分進行處理并提取session值和查詢詞,形成中間鍵值對。
(2)自動合并具有相同鍵值的鍵值對,與之對應(yīng)的多個值被封裝在迭代器中,合并后的結(jié)果作為Reduce操作的輸入鍵值對。
(3)在Reduce函數(shù)中,只需將重復查詢詞過濾便完成數(shù)據(jù)去重處理。如需對數(shù)據(jù)進一步處理,可將Reduce函數(shù)的輸出鍵值對作為下個操作的初始輸入數(shù)據(jù)。
算法1 數(shù)據(jù)去重
map(StringlineNo,StringlineContent){
//lineNo:行號;lineContent:行內(nèi)容
StringsplitStr[]=lineContent.split();/*拆分字符串*/
//字符串操作,提取session值和查詢詞 collect(sessionId,term);//收集數(shù)據(jù)并送至reduce}
reduce(StringsessionId,Iteratorterms){
//sessionId:session值;terms:查詢詞迭代器 foreachterminterms
3 基于Hadoop的海量日志數(shù)據(jù)處
理模型設(shè)計
3.1 實驗環(huán)境
我們使用5臺PC機搭建基于Hadoop的分布式計算平臺,命名為pc1~pc5,其中pc1作Name Node同時也作JobTracker,pc2~pc5作DataN ode和TaskTracker。每臺PC機具體配置如下:硬件環(huán)境:Intel(R)Pentium(R)4CPU3.00GHz 2;1GB內(nèi)存;80G硬盤;100Mbps網(wǎng)口。
軟件環(huán)境:LinuxFedora10;JDK1.6.0_0;Hadoop 0.19.1。3.2 系統(tǒng)設(shè)計與實現(xiàn)3.2.1 數(shù)據(jù)集及數(shù)據(jù)格式
實驗使用的搜索引擎用戶行為日志由搜狗實驗室[9]提供,一個月內(nèi)(2006/8/1~2006/8/31)約2200萬條Sogou搜索引擎查詢及用戶點擊日志集(約1.56GB)。其中每條查詢記錄格式見表1。
表1 查詢記錄日志格式
字段名稱 SessionIDQueryTermRank
SequenceNumberURL
說明 用戶Cookie信息查詢詞
被點擊URL的排名用戶點擊的順序號用戶點擊的URL
例如,某記錄為 6029750673720081[四級成績] ,則對應(yīng)SessionID為 6029750673720081 ,查詢詞為 四級成績 ,用戶點擊的URL為 ,該URL在結(jié)果中排名為1,用戶點擊該URL為第1次點擊。應(yīng)用基于Hadoop的分布式計算框架對海量日志進行用戶行為分析,統(tǒng)計出用戶查詢詞的平均長度、用戶點擊與排名的關(guān)系、熱門詞匯搜索等,為搜索引擎性能評價及算法改進提供數(shù)據(jù)支持。下
圖2 Map/Reduce數(shù)據(jù)去重處理流程
本文關(guān)鍵詞:基于Hadoop的搜索引擎用戶行為分析,,由筆耕文化傳播整理發(fā)布。
本文編號:160603
本文鏈接:http://sikaile.net/kejilunwen/sousuoyinqinglunwen/160603.html