謝志明
摘 要: 傳統(tǒng)的數(shù)據(jù)挖掘模式和方法已經(jīng)不能適應(yīng)如今數(shù)據(jù)的快速增長,分析了將傳統(tǒng)數(shù)據(jù)挖掘算法與云計算技術(shù)相結(jié)合的實現(xiàn)過程。通過研究云計算環(huán)境下海量數(shù)據(jù)挖掘的三層模型,發(fā)現(xiàn)該模型最大的優(yōu)點是數(shù)據(jù)挖掘速度快、可靠性高,而且隨著數(shù)據(jù)量的增加,該模型的優(yōu)勢也愈發(fā)明顯。
關(guān)鍵詞: 云計算; 傳統(tǒng)數(shù)據(jù)挖掘; 算法; 海量數(shù)據(jù)挖掘; 模型
中圖分類號:TP391 文獻標(biāo)志碼:A 文章編號:1006-8228(2015)02-04-03
Study on massive data mining based on the cloud computing environment
Xie Zhiming
(Shanwei Vocational and Technical College, Shanwei, Guangdong 516600, China)
Abstract: The traditional mode and method of data mining are unable to adapt to the rapid growth of data. The traditional data mining algorithm is analyzed to realize the process of combining with the cloud computing technology. Through the research of massive data mining three layer model based on the cloud computing environment, the advantages of this model are its rapid speed and high accuracy of the data mining. With the increasing of data quantity, the superiority of this model is getting more obvious.
Key words: cloud computing; traditional data mining; algorithm; massive data mining; model
0 引言
隨著云計算、物聯(lián)網(wǎng)、移動通信互聯(lián)網(wǎng)、社交網(wǎng)絡(luò)和數(shù)據(jù)自動采集技術(shù)的飛速發(fā)展,人類社會發(fā)生了翻天覆地的變化,與此同時,所產(chǎn)生的海量數(shù)據(jù)也正以前所未有的速度爆炸式增長。美國互聯(lián)網(wǎng)數(shù)據(jù)中心經(jīng)研究發(fā)現(xiàn),目前世界上每年產(chǎn)生的數(shù)據(jù)大約以50%左右的速度在增長,平均每兩年翻一番,而90%以上的數(shù)據(jù)是近幾年才產(chǎn)生的,大數(shù)據(jù)時代已經(jīng)來臨。數(shù)據(jù)已經(jīng)成為當(dāng)今社會最為重要的社會資產(chǎn),擁有信息量的多少已經(jīng)成為決定和制約社會發(fā)展的重要因素。我們急需從這些數(shù)據(jù)中挖掘出寶貴且有價值的信息,以利于企業(yè)或部門對市場作出正確的決策。云計算數(shù)據(jù)挖掘平臺正好能高效地實現(xiàn)海量數(shù)據(jù)挖掘的需求,該平臺不僅能夠?qū)Y源進行動態(tài)分配和調(diào)度,而且還具有虛擬化和可用性高等特點。有學(xué)者為了證實云計算數(shù)據(jù)挖掘平臺的高效性,設(shè)計了一個并行數(shù)據(jù)挖掘模型的實驗,并在Google App Engine平臺上運行,經(jīng)過多次實驗得出的結(jié)果是,在云計算數(shù)據(jù)挖掘平臺上對海量數(shù)據(jù)進行挖掘的效率明顯高于單機系統(tǒng),且具有數(shù)據(jù)量越大,效率越明顯的趨勢。由此可見,將數(shù)據(jù)挖掘技術(shù)與云計算技術(shù)進行有效整合是一種確實可行的途徑。
1 云計算
1.1 云計算的定義
云計算經(jīng)過幾年由概念到產(chǎn)業(yè)、由設(shè)想到技術(shù)的發(fā)展歷程,目前已經(jīng)成為了主流的網(wǎng)絡(luò)架構(gòu)方式。如果我們把云計算看作是一種通過網(wǎng)絡(luò)實現(xiàn)資源服務(wù)的模式的話,則云計算技術(shù)可以被認為是實現(xiàn)云計算模式的所有技術(shù)的總稱,這些技術(shù)包括虛擬化技術(shù)、分布式計算技術(shù)、分布式存儲技術(shù)、網(wǎng)絡(luò)技術(shù)等。云計算時代的到來打破了傳統(tǒng)IT技術(shù)固有的大型機模式,它帶來的理念創(chuàng)新使服務(wù)可以直接當(dāng)作商品來售賣,既節(jié)約了計算成本又充分利用了計算資源,用戶在需要時就像我們平常對水電消費的模式一樣[1],這種模式對組織業(yè)務(wù)的快速變更和創(chuàng)新升級的需求帶來了極大的便利。
目前云計算服務(wù)形式主要有三種,一是基礎(chǔ)設(shè)施即服務(wù)(IaaS),其特點是通過網(wǎng)絡(luò)把不經(jīng)封裝的計算和存儲資源以服務(wù)的形式提供給用戶進行使用,類似于自來水廠供水模式;二是平臺即服務(wù)(PaaS),其特點是以某種接口和協(xié)議把封裝好的計算和存儲資源供使用者進行調(diào)用而無需再面對底層數(shù)據(jù)庫資源;三是軟件即服務(wù)(SaaS),其特點是用戶無需具有任何云計算知識和技術(shù),只需會使用特定開發(fā)商提供的軟件就可進行“云”操作。其基本功能結(jié)構(gòu)如圖1所示。
[軟件即服務(wù)(SaaS)][平臺即服務(wù)(PaaS)][基礎(chǔ)設(shè)施即服務(wù)(IaaS)][代碼定制][應(yīng)用軟件][應(yīng)用代碼][應(yīng)用服務(wù)][應(yīng)用層] [信息檢索][任務(wù)調(diào)度][接口與協(xié)議][數(shù)據(jù)挖掘][平臺層] [平臺軟件][并行計算][存儲平臺][硬件平臺][虛擬化層][操作系統(tǒng)層][基礎(chǔ)
設(shè)施層] [云服務(wù)]
圖1 云計算服務(wù)體系基本功能結(jié)構(gòu)圖
1.2 在云計算環(huán)境下對海量數(shù)據(jù)進行切分的分布式計算
Jeffrey Dean和Sanjay Ghemawat于2004年發(fā)表了一篇關(guān)于Google系統(tǒng)的MapReduce文章。它是一個分布式并行編程模型或框架,主要是對大規(guī)模數(shù)據(jù)集進行并行處理。與MPI不同,這種框架通常不是拆分計算而是以拆分?jǐn)?shù)據(jù)來實現(xiàn)的分布式處理。MapReduce框架下的文件系統(tǒng)一般將大規(guī)模數(shù)據(jù)處理作業(yè)拆分為64MB的塊進行分布式存放,即若干個可獨立運行的Map任務(wù),當(dāng)需要對數(shù)據(jù)進行處理時,再由若干個Reduce任務(wù)合并由Map生成的中間結(jié)果以獲得最后的輸出結(jié)果。此計算過程是在各個塊所在的節(jié)點處直接發(fā)起,節(jié)省了從網(wǎng)絡(luò)上再次讀取數(shù)據(jù)所需的時間,實現(xiàn)計算主動“尋找”數(shù)據(jù)的功能,充分體現(xiàn)了分布式處理大數(shù)據(jù)的優(yōu)越性。
值得一提的是,對大數(shù)據(jù)的處理采用MapReduce數(shù)據(jù)拆分策略是最適不過的了,然而當(dāng)數(shù)據(jù)分塊較小就會導(dǎo)致數(shù)據(jù)處理效率低下。MapReduce框架在對同類型大數(shù)據(jù)塊進行同類型的計算處理時具有很好的自動分布式處理能力,但當(dāng)數(shù)據(jù)類型復(fù)雜、數(shù)據(jù)較小、數(shù)據(jù)處理方式多變的應(yīng)用模式下效率相對下降。為了實現(xiàn)Google系統(tǒng)良好的計算和數(shù)據(jù)的協(xié)作機制MapReduce和GFS是密不可分的,MapReduce失去GFS的支持,計算出來的結(jié)果是沒有太大意義的。但我們熟知的Google系統(tǒng)并非免費項目,所以Apache基金會在2005年以Google的系統(tǒng)為模板啟動了Hadoop項目,Hadoop經(jīng)過多次版本的改良已經(jīng)能很好地實現(xiàn)面向數(shù)據(jù)切分的分布式計算能力,同樣,Hadoop也有自己的文件分布式系統(tǒng)HDFS,目前Hadoop日益成為大眾接納的面向數(shù)據(jù)的標(biāo)準(zhǔn)系統(tǒng)。
2 在云計算環(huán)境下對海量數(shù)據(jù)進行挖掘
2.1 數(shù)據(jù)挖掘的定義
數(shù)據(jù)挖掘(Data Mining),指的是從海量數(shù)據(jù)中挖掘未知的、有價值的隱藏結(jié)構(gòu)或規(guī)律且最終可被理解的知識的過程,又稱為數(shù)據(jù)庫中的知識發(fā)現(xiàn)[2](Knowledge Discovery in DataBase)。數(shù)據(jù)挖掘在整個數(shù)據(jù)挖掘任務(wù)中所處的地位如圖2所示。
[云端海
量數(shù)據(jù)][數(shù)據(jù)準(zhǔn)備
(數(shù)據(jù)前處理)][數(shù)據(jù)挖掘\&][結(jié)果評價和表達
(數(shù)據(jù)后處理)][提取有價值信息\&]
圖2 數(shù)據(jù)挖掘邏輯結(jié)構(gòu)圖
數(shù)據(jù)挖掘技術(shù)在商業(yè)上發(fā)揮出巨大的潛力,但是長期以來困擾企業(yè)不敢做海量數(shù)據(jù)挖掘的一個主要原因是,傳統(tǒng)意義上的并行數(shù)據(jù)挖掘會付出很大的人力財力,且實現(xiàn)技術(shù)復(fù)雜、時效性得不到保證,往往有些信息剛挖掘出來就已失效。云計算技術(shù)的出現(xiàn),正好解決了企業(yè)多年以來想要解決的問題。云計算結(jié)合了分布計算、并行處理、虛擬化等技術(shù),為大型數(shù)據(jù)處理應(yīng)用提供動態(tài)、快速、廉價、可靠的資源服務(wù),并已在互聯(lián)網(wǎng)、搜索引擎等應(yīng)用方面獲得了巨大的成功。
2.2 數(shù)據(jù)挖掘中運用云計算技術(shù)體現(xiàn)出的優(yōu)勢
⑴ 云計算技術(shù)可提供實時高效的分布式并行數(shù)據(jù)挖掘能力[3]。對于海量數(shù)據(jù)的挖掘,更能體現(xiàn)出它的優(yōu)越性。同時云計算服務(wù)可為不同規(guī)模組織帶來優(yōu)質(zhì)的服務(wù),如降低計算成本,對超大型數(shù)據(jù)的快速處理使許多大企業(yè)受益,同時也減輕了部分企業(yè)對大型高端機的依賴。
⑵ 云計算技術(shù)的數(shù)據(jù)挖掘門檻低,普通用戶使用云計算服務(wù)平臺即可實現(xiàn)按需服務(wù),可為需求量日益增大的網(wǎng)絡(luò)用戶提供了良好的個性化信息服務(wù)。
⑶ 對于大眾用戶來說,無需關(guān)心利用云計算技術(shù)進行數(shù)據(jù)挖掘時底層的實現(xiàn)過程。對于數(shù)據(jù)塊的劃分、節(jié)點的加載以及計算任務(wù)調(diào)度等由系統(tǒng)自動分配。
⑷ 在并行化條件下,云計算具有動態(tài)增刪結(jié)點的能力,充分利用原有設(shè)備增加結(jié)點來提高海量數(shù)據(jù)的處理能力和速度,提高設(shè)備的使用率和生命力。
2.3 云計算環(huán)境下海量數(shù)據(jù)挖掘的模型
利用云計算技術(shù)對海量數(shù)據(jù)進行挖掘就是因為云計算本身具有海量的存儲能力和分布式并行處理的能力。一般情況下基于云計算環(huán)境下實現(xiàn)的海量數(shù)據(jù)挖掘模型如圖3所示。
圖3 云計算環(huán)境下海量數(shù)據(jù)挖掘模型的三層結(jié)構(gòu)圖
頂層是面向用戶的應(yīng)用層,該層包含兩個子系統(tǒng):工作流子系統(tǒng)和用戶接口子系統(tǒng)[4]。其中工作流子系統(tǒng)提供友好和統(tǒng)一的用戶接口,用戶通過它可以輕松的建立起數(shù)據(jù)挖掘任務(wù);用戶接口子系統(tǒng)主要用于實現(xiàn)用戶交互功能,通過用戶輸入模塊接收用戶的數(shù)據(jù)挖掘請求,用戶在此模塊可進行參數(shù)讀寫設(shè)置、選擇可行的數(shù)據(jù)挖掘算法,把預(yù)處理過的數(shù)據(jù)通過MapReduce平臺進行并行數(shù)據(jù)挖掘,最后通過展示結(jié)果模塊以可視化理解的方式呈現(xiàn)給用戶。
位于云計算應(yīng)用層之下的是中間層,又叫中間件,這一層包含數(shù)據(jù)預(yù)處理子系統(tǒng)和并行數(shù)據(jù)挖掘子系統(tǒng)。數(shù)據(jù)預(yù)處理子系統(tǒng)主要是對海量不規(guī)則數(shù)據(jù)預(yù)先處理,這一步對于數(shù)據(jù)挖掘非常的重要,因為結(jié)果的輸出其實就是數(shù)據(jù)挖掘算法的輸入。在“云”環(huán)境下MapReduce計算模型主要適用于同類型、結(jié)構(gòu)一致的數(shù)據(jù),當(dāng)所要挖掘的數(shù)據(jù)是形態(tài)各異且不規(guī)則的,就必須要對這類數(shù)據(jù)進行預(yù)處理。常用的方法有并行數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)抽取、數(shù)據(jù)集成和加載等。因此要獲得高質(zhì)量的數(shù)據(jù)挖掘結(jié)果,對數(shù)據(jù)的預(yù)處理是必不可少的。經(jīng)過預(yù)處理的數(shù)據(jù),其包含的臟數(shù)據(jù)、噪聲數(shù)據(jù)、無用數(shù)據(jù)等得到進一步減少,數(shù)據(jù)挖掘過程也就變得更加高效和更易于實現(xiàn)。
并行數(shù)據(jù)挖掘子系統(tǒng)是數(shù)據(jù)挖掘的核心。常用的算法主要包括并行關(guān)聯(lián)規(guī)則算法、并行聚類算法和并行分類算法等。目前已開發(fā)許多經(jīng)典的數(shù)據(jù)挖掘算法,如關(guān)聯(lián)類的就有Apriori算法、Awfits算法、FP-growth算法等;聚類類的有K-均值算法、EM算法、DBSCAN算法等;分類類的有樸素貝葉斯算法、C4.5算法、HSC算法等。但是這些算法都不能直接運用在云計算平臺上進行海量數(shù)據(jù)挖掘,因為MapReduce是云計算的算法模型,要對現(xiàn)有的數(shù)據(jù)挖掘算法和并行化策略進行整合與改造,使算法能在云計算這個新平臺上最優(yōu)化?,F(xiàn)在已有許多專家和學(xué)者基于云計算平臺研究如何高效、快速、安全、準(zhǔn)確地進行海量數(shù)據(jù)挖掘以迎接大數(shù)據(jù)時代的到來。
位于最底層的是云計算數(shù)據(jù)中心層,提供海量數(shù)據(jù)存儲及分布式并行數(shù)據(jù)處理。為保證云計算數(shù)據(jù)的高可用性和安全性,對數(shù)據(jù)實行分布式存儲的同時保留多份副本,當(dāng)某數(shù)據(jù)結(jié)點出現(xiàn)故障不能正常使用時,云計算可自動調(diào)用副本結(jié)點數(shù)據(jù)保證運算的正常進行。由于云計算采用的工作模式是并行的,就算同時有大量用戶提出請求時也能迅速給予回應(yīng)并提供服務(wù)。GFS和HDFS是目前兩種主流的云計算數(shù)據(jù)存儲技術(shù),其中GFS是由Google開發(fā)的,而HDFS則是由Hadoop團隊在GFS基礎(chǔ)上研發(fā)的,它是完全開源的文件分布式系統(tǒng)HDFS。
2.4 云計算環(huán)境下增量數(shù)據(jù)挖掘工具
數(shù)據(jù)挖掘的結(jié)果是有實效性的,特別是時間越近的數(shù)據(jù)挖掘所得到的價值也就越大,這一點對商業(yè)來說尤為重要。然而,使用Hadoop系統(tǒng)下的MapReduce來處理海量數(shù)據(jù)需要頻繁的掃描數(shù)據(jù)庫,這將會耗費大量的計算資源和等待時間。隨著云計算產(chǎn)業(yè)的快速發(fā)展,為滿足不同用戶的個性化需求,市場急需要有能夠?qū)崿F(xiàn)大數(shù)據(jù)實時處理的工具或軟件,而擅長批處理海量數(shù)據(jù)的Hadoop在此領(lǐng)域已經(jīng)捉襟見肘。為此Twitter公司推出了一種分布式容錯實時處理大數(shù)據(jù)計算系統(tǒng)Storm[5],把現(xiàn)行的一些高效數(shù)據(jù)挖掘算法如K-means聚類算法、FP-growth增量算法等嵌入到這種流式系統(tǒng)下進行海量數(shù)據(jù)挖掘,為云計算行業(yè)的業(yè)務(wù)擴充提供了重要的技術(shù)支持。除了Storm以流式處理大數(shù)據(jù)著稱之外,Spark在對大數(shù)據(jù)進行實時處理時也非常卓越,目前Storm和Spark是云計算產(chǎn)業(yè)用于對大數(shù)據(jù)進行增量數(shù)據(jù)挖掘常用的兩種實時處理工具。
3 結(jié)束語
傳統(tǒng)的數(shù)據(jù)挖掘方法與現(xiàn)行主流的云計算技術(shù)相結(jié)合,大幅提升了對海量數(shù)據(jù)的挖掘能力。效率提高的同時,也發(fā)現(xiàn)了MapReduce在處理海量數(shù)據(jù)時會頻繁掃描數(shù)據(jù)庫,加大了云計算系統(tǒng)的負擔(dān)及成本的消耗,不利于中小企業(yè)或公司的應(yīng)用和體驗。所以目前正著手研究如何通過減少對數(shù)據(jù)庫掃描的次數(shù)來提高數(shù)據(jù)挖掘效率,尤其是實時傳輸?shù)氖呛A苛魇綌?shù)據(jù)時,應(yīng)如何在云計算平臺上進行優(yōu)化。除此之外,還應(yīng)關(guān)注數(shù)據(jù)在云傳輸過程中是否安全,存放在云端的數(shù)據(jù)隱私是否會被泄露,在多租戶架構(gòu)下能否有效保證云端數(shù)據(jù)的完好隔離,數(shù)據(jù)使用完之后能否完全清除云端痕跡等等,用戶數(shù)據(jù)的合法性和安全性也還有待進一步證實和加強。
參考文獻:
[1] 王鵬等.云計算與大數(shù)據(jù)技術(shù)[M].人民郵電出版社,2014.
[2] [美]Mehmed Kantardzic著,王曉海,吳志剛譯.數(shù)據(jù)挖掘:概念、模型、
方法和算法(第2版)[M].清華大學(xué)出版社,2013.
[3] 賀瑤,王文慶,薛飛.基于云計算的海量數(shù)據(jù)挖掘研究[J].計算機技術(shù)
與發(fā)展,2013.2:69-72
[4] 何清,莊福振.基于云計算的大數(shù)據(jù)挖掘平臺[J].中興通訊技術(shù),
2013.4:32-37
[5] 李浩.基于Twitter Storm的云平臺監(jiān)控系統(tǒng)研究與實現(xiàn).[D].東北大
學(xué)碩士學(xué)位論文,2013.