陳小龍 丁祥武

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