陳小龍 丁祥武
摘要:在信息系統(tǒng)當中,日志數(shù)據(jù)也就是用戶對系統(tǒng)的操作記錄以及系統(tǒng)自身的運行狀7兄記錄,對日志數(shù)據(jù)的有效分析,有利于排除系統(tǒng)故障、明確用戶訪問規(guī)律等?;诖耍恼戮虷adoop平臺下日志分析系統(tǒng)展開研究,首先介紹了系統(tǒng)的總體框架,進一步對其設計與實現(xiàn)過程中,日志分析處理流程設計、日志數(shù)據(jù)預處理兩個操作環(huán)節(jié)進行了重點介紹,并進一步提出了針對此類系統(tǒng)的檢測方法。
關鍵詞:Hadoop平臺;日志分析系統(tǒng);數(shù)據(jù)預處理
Hadoop是Apache軟件基金會的一個開源項目,在并行處理大數(shù)據(jù)的研究與應用領域,屬于一款極具代表性的產(chǎn)品。Hadoop平臺提供的是一種分布式系統(tǒng)基礎框架,適用于多種分布式應用的開發(fā),且能夠支持海量數(shù)據(jù)的高效運算與存儲。由此可見,在進行日志分析系統(tǒng)的設計時,Hadoop是首選的支持平臺,對實現(xiàn)日志分析系統(tǒng)的高效運行目標,具有極大的支持與推動作用。
1 基于Hadoop平臺下日志分析系統(tǒng)的總體構架
Hadoop平臺下日志分析系統(tǒng)的總體構架可以從以下幾個方面進行闡述。
(1)日志收集的方式,傳統(tǒng)的Web服務器在接收到用戶訪問HTTP請求后會對此行為做出記錄,并且按照需求返還給用戶正常的網(wǎng)頁內(nèi)容;此外還有頁面標記法、爬蟲或者掃描網(wǎng)站等方式產(chǎn)生的PV,不會被直接統(tǒng)計,一個頁面的請求只會形成一個PV,對日志的收集和匯總也十分簡單便捷。
(2)可以采用流量分析統(tǒng)計、來源分析統(tǒng)計、訪客分析統(tǒng)計和訂單分析統(tǒng)計等方法對日志的功能需求進行詳細分析。對于數(shù)據(jù)的輸出,因為客戶的不同,輸出展現(xiàn)形式也不一樣,使用Web圖表的形式進行合理展示十分必要。
(3)日志處理的流程分析,首先對作業(yè)進行合理配置,根據(jù)輸入的日期時間和報表的類型,讀取所有符合要求的記錄,隨后將作業(yè)提交到集群中進行統(tǒng)一處理,處理后的相關記錄都會被保存到HDFS當中。最后作業(yè)完成執(zhí)行,連接數(shù)據(jù)庫,將最后的結果再一次存儲到數(shù)據(jù)庫當中。
(4)作業(yè)的詳細設計,系統(tǒng)中包含輸入輸出包、工具包和業(yè)務包,其中輸入輸出包也就是IQ包,負責日志信息記錄到數(shù)據(jù)庫中,工具包,簡稱Util包,主要負責將字符串的模式解析和錯誤信息進行記錄排除錯誤,業(yè)務包指的是Service包,是系統(tǒng)中最重要的組成部分,由一些mappreduce作業(yè)組成,有各種統(tǒng)計的功能作用。
2 基于Hadoop平臺下日志分析系統(tǒng)的設計與實現(xiàn)策略
基于Hadoop平臺設計日志分析系統(tǒng),完成后的系統(tǒng)如圖1所示,主要包括日志信息收集、日志預處理流程設計、作業(yè)詳細設計以及統(tǒng)計結果呈現(xiàn),共4個階段。
2.1 日志數(shù)據(jù)預處理
基于Hadoop平臺的日志分析系統(tǒng)當中,數(shù)據(jù)的預處理是系統(tǒng)功能實現(xiàn)的關鍵環(huán)節(jié),整個階段需要實現(xiàn)數(shù)據(jù)清洗、用戶識別以及會話識別功能。以某電子商務網(wǎng)站系統(tǒng)的Web日志分析系統(tǒng)為例,日志數(shù)據(jù),主要記錄了用戶對網(wǎng)站的所有訪問行為,但后臺檢測時發(fā)現(xiàn),所記錄的日志信息當中,包含大量的冗余信息;且有部分信息受到了一定損害,呈現(xiàn)為不完整的狀態(tài);還有部分日志記錄是錯誤的或者無效的。對于日志分析系統(tǒng)來說,這些信息數(shù)據(jù)的存在,增加了日志分析與處理的復雜性,當這些信息的量達到一定程度時,將會對分析結果造成影響,降低分析結果的準確度[1]。所以,有必要進行一系列的數(shù)據(jù)預處理操作,對記錄中不完整的、不一致的數(shù)據(jù)信息進行清除,從而提升系統(tǒng)分析結果的準確度。
在某一網(wǎng)站系統(tǒng)運行過程中,用戶發(fā)送了一個服務請求,此時,日志系統(tǒng)會自動記錄與這一服務相關的所有信息,包括音頻、視頻、圖片、文字等,一般情況下,這些日志信息的作用并不明顯,但當需要進行某一圖片、視頻等的訪問量時,這些記錄就能夠成為可靠的統(tǒng)計數(shù)據(jù)來源。但若要統(tǒng)計網(wǎng)站的日訪問量與訪客訪問間隔分布,那么這些具體的音頻、視頻、圖片等數(shù)據(jù)信息,就都成了冗余信息,刪除之后,能夠極大地提高日志分析處理效率。
基于Hadoop平臺下的日志分析系統(tǒng)中,數(shù)據(jù)預處理階段,能夠有效進行數(shù)據(jù)清洗,操作過程中,應以相關統(tǒng)計需求、日志數(shù)據(jù)格式為依據(jù),對日志記錄進行分析處理,清除記錄當中的不完整的、冗余的或無效的數(shù)據(jù)信息;若發(fā)現(xiàn)存在錯誤的記錄,可對其進行適當?shù)奶幚?。其次,基于Hadoop平臺的日志分析系統(tǒng),能夠利用userid字段表示訪問用戶,從而實現(xiàn)用戶識別。當順利識別訪客之后,通過分析訪客的點擊序列,可以實現(xiàn)會話識別。會話識別的功能原理,就是先將訪客的訪問記錄進行分類處理,形成一個個獨立的會話;主要的識別方法就是超時識別,可通過對所有訪客設置同一個超時閾值,或對相鄰的請求設置超時閾值的方式,完成識別操作。需要注意的是,設置超時閾值,對預處理日志的輸出會產(chǎn)生一定的影響,所以要盡量保證閾值的合理性,在30 min左右即可。
2.2 日志分析處理流程
基于Hadoop平臺的日志分析系統(tǒng)中,日志分析處理流程模塊的核心,是MapReduce計算模型,該模塊的主要作用,就是完成事物邏輯規(guī)則設計與計算功能。利用MapReduce計算模型,能夠實現(xiàn)對Web日志的高效處理,且當需要進行相關統(tǒng)計事務時,也能極大地降低統(tǒng)計工作的難度,提升工作效率。在進行數(shù)據(jù)預處理之前,日志記錄中往往存在諸多無價值的數(shù)據(jù)信息,而日志處理模塊的主要作用.就是將具有分析價值的信息篩選出來[2]。利用MapReduce計算模型,其Map階段的主要作用,就是對所有的日志記錄進行清洗,篩選出需要的信息,同時轉化原始日志的形式成為
對于不同的網(wǎng)站系統(tǒng)來說,出入業(yè)務需求的差異,名相關統(tǒng)計規(guī)則也不盡相同,但對于統(tǒng)計功能及效果的實現(xiàn)原理是一致的,具體的流程如下。
(1)明確數(shù)輸入路徑,并依此對輸入文件進行分割;并利用讀入數(shù)據(jù)格式(InputFormat)中的RecordReader將數(shù)據(jù)讀成
(2) Mapper接收到鍵值對之后,要進行Map操作,操作流程:Map
(3)由Redueer進行Reduee操作。
(4)由輸出數(shù)據(jù)的格式(OutputFormat)中的RecordWriter輸出結果。
3 基于Hadoop平臺下日志分析系統(tǒng)測試
基于Hadoop平臺下的日志分析系統(tǒng),在完成初步設計之后,要對系統(tǒng)的可靠性與穩(wěn)定性進行測試。整個測試流程,應從原始日志數(shù)據(jù)開始,依據(jù)數(shù)據(jù)處理流程,完整進行數(shù)據(jù)處理與分析。獲得日志數(shù)據(jù)之后,通過系統(tǒng)的計算分析,能夠得到時間分布示意圖,通過對曲線圖的分析,能夠明確訪問峰值出現(xiàn)的時間段,以及訪問量的整體變化趨勢‘3]。獲得最終的統(tǒng)計結果之后,將其與以往總結的用戶訪問習慣、日常生活中人們的行為習慣等進行對比分析,進一步驗證系統(tǒng)流程的正確性,以及分析結果的可靠性。
以某搜索網(wǎng)站為例,通過獨立了訪客統(tǒng)計需求實現(xiàn),對基于Hadoop平臺下日志分析系統(tǒng)進行測試,數(shù)據(jù)統(tǒng)計過程中,時間分布示意圖,由UV統(tǒng)計組件計算獲得,圖像顯示,該網(wǎng)站的用戶在每天的10:00~18:00這一時段,每個時間點的訪問量能夠達到25 000~31 000次;10:00之前的訪問量變化沒有明顯規(guī)律;18:00之后的訪問量則呈現(xiàn)為逐漸降低的變化趨勢。這與人們的工作、學習時間的總體分布規(guī)律相符,由此證明了系統(tǒng)流程的正確性。
4 結語
探究基于Hadoop平臺下日志分析系統(tǒng),有利于更加深入地挖掘日志系統(tǒng),獲得更多有價值的信息,為相關統(tǒng)計決策提供更加可靠的支持。通過相關分析,基于Hadoop平臺下的日志分析系統(tǒng),能夠實現(xiàn)對海量數(shù)據(jù)的高效分析與處理,能夠充分滿足當前及未來一段時間內(nèi)的數(shù)據(jù)處理需求,具有較高的實踐意義。
[參考文獻]
[1]嚴春景.基于Hadoop平臺和查詢?nèi)罩镜挠脩粜袨榉治鱿到y(tǒng)設計與實現(xiàn)[D]廣州:廣東工業(yè)大學,2016.
[2]何健偉.基于Hadoop的數(shù)據(jù)挖掘算法研究與實現(xiàn)[D].北京:北京郵電大學,2015.
[3]陳娜.基于Hadoop平臺的海量數(shù)據(jù)處理應用[D].長春:吉林大學,2012.