蔡勁松
(安徽新聞出版職業(yè)技術學院計算機中心,合肥 230601)
基于Hadoop的大數(shù)據(jù)處理策略研究
蔡勁松
(安徽新聞出版職業(yè)技術學院計算機中心,合肥 230601)
大數(shù)據(jù)為數(shù)據(jù)挖掘提供了豐富的數(shù)據(jù)源,從中挖掘出的信息更加具有商業(yè)價值.以Hadoop的大數(shù)據(jù)處理為核心,通過查找相關文獻資料,實證分析了大數(shù)據(jù)處理的策略,從而為未來大數(shù)據(jù)處理路徑提出更好的指導.
Hadoop;大數(shù)據(jù);處理;策略
我們處在一個數(shù)據(jù)爆炸的時代,隨著云計算技術的流行,互聯(lián)網(wǎng)技術的發(fā)展,傳統(tǒng)產(chǎn)業(yè)的自動化和信息化提升以及人類正在被數(shù)字化的生活,大數(shù)據(jù)已經(jīng)逐漸將我們包圍.數(shù)據(jù)的不斷增長在給人們帶來巨大價值的同時,也給人們帶來了巨大的挑戰(zhàn).大數(shù)據(jù)處理已經(jīng)成為很多大型企業(yè)所關注的焦點.
大數(shù)據(jù)處理雖然剛剛興起,但數(shù)據(jù)在企業(yè)中一直處于核心地位,傳統(tǒng)的數(shù)據(jù)產(chǎn)品,如數(shù)據(jù)庫、報表系統(tǒng)等,在企業(yè)中部署運行多年,為企業(yè)的經(jīng)營決策貢獻巨大.
Hadoop、NoSQL這樣的開源大數(shù)據(jù)解決方案能夠節(jié)省資源、提高系統(tǒng)利用率,是性價比極高的選擇.調(diào)查顯示19.82%的企業(yè)用戶正在使用開源大數(shù)據(jù)處理技術,22.97%的企業(yè)用戶計劃于1年內(nèi)部署,9.91%計劃于2年內(nèi)部署,沒有相關計劃和不確定的人群占到47.29%.由此看出,Hadoop等開源大數(shù)據(jù)處理技術相當熱門,已經(jīng)有至少52.71%的企業(yè)用戶已經(jīng)或計劃部署相關解決方案.
Hadoop由5大構造模塊構成,分別為:NameNode(名字節(jié)點)、Secondary NameNode(次名字節(jié)點)、DataNode(數(shù)據(jù)節(jié)點)、TaskTracker(任務跟蹤)、JobTracker(作業(yè)跟蹤).每個模塊具備不同的功能,共同完成分布式數(shù)據(jù)處理任務.
1)NameNode
Hadoop體系中的NameNode是最重要的守護進程之一.其位于HDFS的頂端,監(jiān)控并指導體系底層I/O作業(yè).當Hadoop接收到新的執(zhí)行任務時,首先在NameNode的監(jiān)管下將任務文件進行分割并分發(fā)到各個數(shù)據(jù)計算節(jié)點進行存儲,并實施監(jiān)控這些節(jié)點及整個HDFS的運行狀態(tài).
2)SecondaryNameNode
SecondaryNameNode更像是NameNode的備份,它不像NameNode一樣實時的對HDFS監(jiān)控并記錄其變化,但是它會在設定的時間間隔內(nèi)與NameNode進行通信,并對HDFS的存儲情況進行備份.通常情況下,NameNode會獨立的占用一臺服務器,不會參與具體數(shù)據(jù)的計算.
3)DataNode
DataNode是Hadoop集群的計算節(jié)點,每個Slave節(jié)點上都會有一個DataNode守護進程駐留.Hadoop集群會包含一個NameNode及大量的DataNode.用戶初次寫入HDFS的文件會被分成許多塊儲存在不同的DataNode上,并做冗余備份,以防發(fā)生數(shù)據(jù)丟失情況影響整個集群的計算.當用戶再次操作HDFS內(nèi)的文件時,NameNode會對此作出相應,調(diào)用儲存有相應數(shù)據(jù)塊的DataNode進行操作.
4)JobTracker
與NameNode用于監(jiān)管HDFS上的存儲文件類似,JobTracker守護進程的作用是來監(jiān)控所有的MapReduce計算任務(task).當Hadoop接收到一個新的計算任務時,首先由JobTracker將任務分成不同的task,并判斷HDFS里面的哪個文件塊需要處理,然后根據(jù)結論為不同的task分配相應的DataNode進行計算作業(yè).駐留在Master節(jié)點的JobTracker會實時監(jiān)控task的運行,一旦其運行失敗會重啟這個task執(zhí)行未完成的任務.
5)TaskTracker
TaskTracker與負責存儲數(shù)據(jù)的DataNode相結合,共同實現(xiàn)Hadoop的作業(yè).JobTracker作為MapReduce的核心管理節(jié)點,TaskTracker類似于DataNode負責獨立執(zhí)行具體的task.
Hadoop大數(shù)據(jù)是服務器軟件所記錄的用戶訪問網(wǎng)站系統(tǒng)的行為數(shù)據(jù),其中包括了用戶的IP地址、訪問時間等多種用戶訪問信息,如何將這些原始雜亂的日志數(shù)據(jù)轉化為適合進行數(shù)據(jù)挖掘與模式發(fā)現(xiàn)的標準會話文件,是Hadoop大數(shù)據(jù)處理所要做的主要工作(如圖1所示).
圖1 傳統(tǒng)Hadoop大數(shù)據(jù)處理模型
2.1 數(shù)據(jù)清洗模型
標準的數(shù)據(jù)清洗包括以下主要內(nèi)容:
1)格式清洗
針對服務器日志文件的挖掘主要以文本挖掘為主,文本以外的如:音頻、視頻、圖片等多媒體文件相對文本挖掘的意義不大,所以需要清洗掉后綴名為.avi、.mp3、.jpg、.gif等多媒體文件日志記錄.用戶在訪問服務器系統(tǒng)過程中產(chǎn)生的腳本文件如JS文件等也不足以反應出用戶的關聯(lián)行為,故需要將JS等腳本文件清洗掉.
2)URL清洗
在某些情況下進行的服務器請求會產(chǎn)生一些無關的URL記錄,所以需要對這些無關URL進行清洗.URL清洗的主要方法是預先建立URL表格,只要不在表格內(nèi)的URL內(nèi)容都需要進行清洗.
3)通信方式清洗
一般情況下,用戶對服務器的請求方式有GET、POST、HEAD三種情況.但是真正能反映出用戶請求行為的只有GET請求,故需要對其他兩種通信方式的請求進行清洗,只保留GET請求.
4)狀態(tài)清洗
不是每一次的客戶請求都是成功的請求,如果遇到網(wǎng)絡不暢通或服務器故障造成的請求狀態(tài)為不成功則該條日志內(nèi)容也需要清洗掉.
經(jīng)過以上四步清洗之后的日志數(shù)據(jù)規(guī)模已經(jīng)大為減小,其輸出內(nèi)容可以進行下一步操作.
2.2 會話識別模型
會話識別指的是通過算法來識別用戶從初次進入站點到離開站點的訪問行為.一般情況下Web服務器日志文件時間跨度都較長,所以這段時間內(nèi)用戶可能不止一次的訪問該站點,會話識別就是要把用戶在不同時間內(nèi)的兩次訪問區(qū)分開來,并將一次訪問的所有頁面規(guī)約為一次會話情況.
會話識別常用一個二元數(shù)組進行表示,<Uid,RS>,該數(shù)組中,Uid表示訪問發(fā)起用戶,RS表示了該用戶在一段時間內(nèi)訪問服務器站點所有頁面的集合.
傳統(tǒng)經(jīng)典會話識別算法不能夠根據(jù)不同的網(wǎng)頁內(nèi)容、不同的用戶習慣、不同地區(qū)網(wǎng)絡狀況等進行有效的識別.預先設定閾值時間的方法忽略了網(wǎng)頁與用戶的差異,從而導致會話識別混亂,例如讀書類的網(wǎng)站,因為每個頁面涉及的文字內(nèi)容有長有短,用戶在內(nèi)容包含1萬字的頁面上停留的時間將遠大于在1千字網(wǎng)頁上停留的時間,故生硬不變的時間閾值不能滿足會話識別的需要.
圖2 路徑識別模型
2.3 路徑識別模型
路徑識別是在會話識別輸出結果基礎之上進行的操作(如圖2所示),是數(shù)據(jù)預處理的最后一步.
3.1 模型改進思想
傳統(tǒng)數(shù)據(jù)清洗模型中對于搜索機器人訪問行為的清洗主要是基于以下三種方法進行:
1)基于搜索引擎名稱清洗
主流搜索引擎如google、百度、騰訊搜搜等,在進行機器人掃描時,會在用戶代理中留下其特定關鍵字,通過關鍵字篩選即可去除這些搜索引擎對站點的訪問行為.
2)請求方法清洗
搜索機器人對站點的搜索行為一般情況下會使用HEAD作為請求方法,這樣在請求方法過濾中只保留GET方法的行為已經(jīng)可以屏蔽掉此種類型的搜索機器人訪問行為.
3)文件清洗
主流互聯(lián)網(wǎng)搜索引擎都遵循一個約定俗成的規(guī)定,每次機器人搜索都實現(xiàn)請求Robots協(xié)議.Robots協(xié)議是以robots.txt文本的形式存在,站點通過該協(xié)議告訴搜索機器人哪些頁面可以訪問,哪些禁止訪問.只要過濾掉所有請求robots.txt文件的訪問行為即可基本清洗掉大多數(shù)遵守規(guī)則的機器人訪問行為.但是并不是經(jīng)過以上三次過濾后即可清洗掉所有機器人訪問數(shù)據(jù),為應對以上難題,本文提出了一種二次過濾模型,過濾掉由搜索機器人產(chǎn)生的訪問記錄.
如圖3所示,區(qū)別于傳統(tǒng)數(shù)據(jù)清洗階段的清洗,二次過濾模型作用于會話識別階段與路徑識別階段,協(xié)同數(shù)據(jù)清洗,一起完成對網(wǎng)絡搜索機器人訪問記錄的清洗.
圖3 基于二次過濾的Hadoop預處理模型
3.2 一次過濾
一次過濾原理是針對搜索機器人的時間特性,因為搜索機器人運作與各大搜索引擎的大型服務器或集群式服務器之上,所以其對站點的訪問具有訪問速度快的特點.一般情況下,自然人用戶需要幾分鐘甚至幾十分鐘才能夠完成一個頁面的訪問,搜索機器人僅需要幾秒鐘即可完成訪問.
3.3 二次過濾
二次過濾又可以稱之為路徑過濾,是基于路徑訪問序列的過濾行為,其針對的是搜索機器人的訪問路徑特性.正常的自然人對一個站點的訪問只會訪問其關心的網(wǎng)頁,其并不會對所有網(wǎng)頁進行訪問,而網(wǎng)絡搜索機器人會對整個站點進行搜索.
經(jīng)過二次過濾之后,能夠幾乎百分之百的完成對網(wǎng)絡搜索機器人的清洗工作,使得預處理之后的數(shù)據(jù)更加干凈,對于提高后續(xù)挖掘算法的效率與準確度具有重大的意義.
本文主要介紹基于Hadoop的大數(shù)據(jù)策略處理研究.首先簡要介紹了Hadoop云平臺構架結構;之后對現(xiàn)有Hadoop大數(shù)據(jù)處理模型進行分析;并在原模型基礎上提出二次過濾動態(tài)閾值模型,并對其進行詳細闡述.
[1] 張鵬.IBM在華踐行“藍云6+1”計劃[J].通信世界,2009,20(16):23-24.
[2] 張亞勤.與云共舞——微軟云計算的新進展[J].中國計算機用戶,2009,2(14):12-13.
[3] 岑文初.分布式計算開源框架Hadoop入門實踐[EB/OL].http://blog.csdn.net/cenwenchu79/archive/2008/08/29/ 2847529.aspx,2008.
[4] 劉越.云計算綜述與移動云計算的研究[J].信息通信技術,2010,2(8):15-17.
[5] 司品超,董超群,吳力,等.云計算:概念、現(xiàn)狀及關鍵技術[J].高性能云計算年會,2008,1(2):31-32.
[6] 框勝徽,李勃.云計算體系結構及應用實例分析[J].計算機與數(shù)字工程,2010,3(6):61-63.
[7] 王鵬.走進云計算[M].北京:人民郵電出版社,2009.
[責任編輯王新奇]
Hadoop-Based M ass Data Processing Strategy
CAIJing-song
(Computer Center,Anhui Vocational College of Press and Publishing,Hefei230601,China)
Mass data provide a rich source for data-mining.The excavated information can be of commercial value.Based on related references,we have provided an empirical analysis ofmass data processing strategy and insightful observations for futuremass data processing.
Hadoop;mass data;processing;strategy
TP391
A
1008-5564(2015)02-0061-04
2015-01-21
蔡勁松(1979—),男,安徽無為人,安徽新聞出版職業(yè)技術學院計算機中心講師,碩士,主要從事計算機應用基礎、數(shù)據(jù)庫程序設計與開發(fā)的教學與研究.