張有義
基于Hadoop的大數據處理與挖掘分析
張有義
(貴州江南航天信息網絡通信有限公司 貴州遵義 563000)
大數據能夠為數據挖掘,提供更為豐富的數據源,并從中挖掘出更加具有商業價值的相關信息。以Hadoop的大數據處理作為核心項目,通過查找相關文獻資料,分析大數據的相應處理策略,為大數據處理路徑的發展提出更好指導。
Hadoop;大數據;處理;挖掘
在數據爆炸的背景下,云計算技術逐漸流行起來,而隨著互聯網技術的發展與成熟,傳統產業自動化、信息化的提升,以及人們生活的數字化發展,都體現出了大數據在日常生產生活中的應用優勢。而數據增長在給人們帶來巨大價值的同時,也帶來了很大挑戰,逐漸成為許多大型企業關注的焦點。
2.1 概況
目前,大數據處理逐漸發展起來,而數據更是成為企業發展的核心,為企業經營決策方面提供了重要依據。Hadoop、NoSQL等開源大數據解決方案,可以有效節約資源、提高系統的利用率,具有很高的性價比。Hadoop主要是由5大構造模塊構成的,分別是:名字節點(NameNode)、次名字節點(Secondary NameNode)、數據節點(DataNode)、任務跟蹤(TaskTracker)、作業跟蹤(JobTracker)。每個模塊具備不同的功能,共同完成分布式數據處理任務。
2.2 Hadoop基本原理
Hadoop的建立,屬于一種具有分布式系統的基礎架構,是一個能夠用于處理大規模數據的軟件平臺,其特點在于具有海量的存儲(能夠處理PB級別的數據)、成本低、高效率和可靠性等,其核心功能則主要包括兩部分:HDFS和MapReduce。
2.2.1 HDFS
HDFS是一個運行在普通PC之上的分布式文件系統。它采用主/從結構來搭建集群系統,通常由一個Master節點與多個Slave節點共同構成的,可使用兩個節點充當Master,一個為Active,另一個為Standby,如果Active節點出現失效,則會自動切換至Standby節點上。Master節點又被稱為名字節點,主要責任是管理元數據,包括文件系統名空間管理、客戶機對文件的訪問操作等;Slave節點又被稱為數據節點,主要負責對節點數據實施存儲管理,并響應客戶端讀寫請求。
2.2.2 Map/Reduce
Map/Reduce作為Hadoop平臺上,用以實施海量數據,并行運算的計算模型。該模型在處理數據時,主要有2個階段:先進行Map階段,后進行Reduce階段。其大概計算過程如下:先將數據分為若干份,然后對每一份進行處理,該過程即為Map,歸并每一份的處理結果,并對歸并后的數據進行處理,該過程稱為Reduce。
3.1 核心架構設計
以Hadoop為基礎,建立交互式的大數據分析查詢核心架構,具體結構如圖1所示,其中包括了遠程訪問模塊、SQL解析器、查詢優化器、任務計劃執行引擎、存儲插件接口、分布式緩存模塊等。

圖1 核心架構圖
(1)遠程訪問模塊,該模塊屬于一種低開的銷通信協議,通常適用于遠程過程調用。此外,C++和Java API層也用于客戶端應用程序與系統進行交互,在提交查詢請求之前,客戶端既可以直接與特定節點進行通信,也能通過zookeeper發現集群節點,從而更方便地管理維護復雜的集群。
(2)SQL解析器。基于標準SQL語句解析傳入的查詢請求,通過元數據應用程序接口請求模式信息,然后產生標準邏輯計劃以供優化器進行優化,其語法樹提供用戶操作接口,靈活性高且該解析器的組件與語言無關。
(3)查詢優化器。優化器將邏輯計劃轉化為物理計劃,包含有子查詢的SELECT語句是作為半連接執行的,所以子查詢中每條記錄返回最少的實例,優化器可以對表的掃描最小化并且有利于匹配內外表的SELECT記錄。
(4)任務計劃執行引擎。為了實現高性能的查詢處理,引入一種分布式可擴展的執行引擎。該引擎提供數據本地化、容錯以及基于行列的等級處理。
(5)存儲插件接口。存儲插件可以與數據源進行交互,數據的位置和優化規則有助于提升查詢效率。
(6)分布式緩存模塊。采用分布式緩存,提高查詢性能,通過動態地增減集群節點來調節數據訪問負載,從而提高資源利用率。
3.2 數據清洗模型
3.2.1 格式清洗
在挖掘服務器日志文件時,其挖掘的重點在于文本內容,此外還包括:音頻、視頻、圖片等多媒體文件,必要的情況下,需要清洗掉文件后綴名是 avi.、mp3.、jpg.、gif.等的多媒體文件日志記錄。當用戶訪問服務器系統時,期間所產生的腳本文件,也不足以反應出用戶的關聯行為,因而需要將JS等腳本文件清洗掉。
3.2.2 URL清洗
在某些情況下進行的服務器請求會產生一些無關的URL記錄,所以需要對這些無關URL進行清洗。URL清洗的主要方式,是預先建立相應的URL表格,對不在表格內的URL內容,進行全面的清洗。
3.2.3 通信方式清洗
正常情況下,用戶對服務器的請求方式有三種,即GET、POST和HEAD。但是,真正能夠反映用戶請求行為的,只有GET請求,因此必須針對其他的兩種通信方式請求進行清洗,而僅保留GET請求。
3.2.4 狀態清洗
并非每一次的客戶請求,都屬于成功的請求,若遇到網絡不暢通、服務器故障等問題所造成的請求不成功問題,則需要連同相應的日志內容也一并進行清洗。經過以上四步清洗后,日志數據的規模已經大大減小,即可針對其輸出內容實施下一步的操作。
3.3 數據查詢流程
當用戶向系統提交了一個查詢請求時,客戶端或應用程序就會將查詢的SQL語句發送給集群中的節點。系統的進程在集群的節點上執行協調、規劃、最大化查詢。客戶端和應用程序查詢后端節點,然后驅動查詢的組件。具體過程如下:
(1)使用SQL解析器,對所查詢的請求實施解析,所解析的內容則包括詞法、語義等的分析。在查詢解析器中的查詢請求會被解析為邏輯計劃,而邏輯計劃描述了查詢操作的基本數據流。
(2)使用優化器來讀取邏輯計劃,然后將其轉換成物理計劃。存儲引擎和特定的數據源進行交互,提供讀寫功能,將元數據信息提供給元數據庫,將原生功能告知執行引擎。
(3)物理計劃的執行通常由執行引擎進行,而執行引擎的運行需要依賴組件,執行器負責轉換數據流,功能函數將數據流轉換為單獨的數據,掃描器和寫詞器負責讀寫數據。元數據庫查詢執行框架并提供元數據信息,即時編譯器將部分物理計劃轉換成本地代碼。
3.4 基于Hadoop的網絡大數據挖掘應用
3.4.1 挖掘工具選擇
Mahout作為ASF旗下的開源項目之一,Myhout能夠提供一些可擴展機器學習領域經典算法,旨在幫助相關的開發人員,能夠更加方便快捷地進行智能應用程序的創建,從而實現聚類、分類、推薦過濾、頻繁子項的挖掘。另外,通過運用Apache的Hadoop庫,Mahout可有效擴展至云中。在算法上,Mahout具有很強的針對性,因而適用于小數量級別上的運行控制,但是,當計算機硬盤容量全部消耗完成之后,則可能會發生崩潰。
3.4.2 數據挖掘過程
利用所搭建的平臺,采用數據挖掘技術,可設計為以下幾個重要步驟:①針對所指定的訓練數據,通過相應的算法進行訓練;②在評測過程中,可以將待測試數據進行類型的劃分;③保證統計分類的正確率。依據實驗內容、實驗要求等,采用合適的算法,所選擇的算法應當能夠實現對訓練數據的訓練和對測試數據的預測,并進行與原始測試數據的計算正確率比對。
Hadoop的內部工作機制非常復雜,且相互依存,其運行基礎為分布式系統原理、實用技術以及相關常識。所以,能夠合理運用Hadoop的過程是一個較為漫長的過程,需要在學習過程中進行經驗的積累與總結,從而在實際工作中進行有效的運用。
[1]宋廷山,郭思亮,韓 偉.基于HADOOP的大數據描述統計分析[J].統計與信息論壇,2015(11):32~38.
[2]王劍宇,劉鳳良,姜薇.基于Hadoop的大數據增量計算探討[J].電腦知識與技術,2015,11(18):8~10.
[3]肖 露,王 晶.一種基于Hadoop的大數據流量經營系統解決方案[J].電信工程技術與標準化,2015(2):87~92.
TP311.13
A
1004-7344(2016)33-0263-02
2016-11-10