摘 要:隨著網(wǎng)絡(luò)信息技術(shù)的快速發(fā)展,面對(duì)網(wǎng)絡(luò)中海量數(shù)據(jù)的挖掘存在著計(jì)算能力和存儲(chǔ)空間兩方面的限制,云計(jì)算技術(shù)可以有效地解決數(shù)據(jù)挖掘中出現(xiàn)的這些問題。本文介紹了云計(jì)算的關(guān)鍵技術(shù),數(shù)據(jù)挖掘算法的分類以及云計(jì)算平臺(tái)下的數(shù)據(jù)挖掘算法。
關(guān)鍵詞:云計(jì)算;數(shù)據(jù)挖掘;MapReduce
隨著互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)中的信息量、數(shù)據(jù)量越來越龐大,而且這些大量的信息數(shù)據(jù)并非簡單整齊地排列在數(shù)據(jù)庫中,它們具有動(dòng)態(tài)、異構(gòu)、分布廣等特點(diǎn),分析與處理這些數(shù)據(jù)的復(fù)雜度高,計(jì)算能力和存儲(chǔ)空間方面不容易達(dá)到要求,給現(xiàn)有的數(shù)據(jù)挖掘帶來了難題。云計(jì)算可以有效地解決這個(gè)問題,它是數(shù)據(jù)管理技術(shù)發(fā)展的必然趨勢(shì)。
1 云計(jì)算及其關(guān)鍵技術(shù)
云計(jì)算技術(shù)是近年來新興起的共享型編程架構(gòu)方法,它是由傳統(tǒng)的網(wǎng)格計(jì)算和并行計(jì)算發(fā)展而來的,本質(zhì)上是一種分布式并行計(jì)算技術(shù),它所處理的數(shù)據(jù)并不是運(yùn)行在本地機(jī)器上,而是存儲(chǔ)在大規(guī)模服務(wù)器集群中。
云計(jì)算技術(shù)的基本原理是通過遠(yuǎn)程服務(wù)訪問大量分布式計(jì)算機(jī)組成的服務(wù)器集群,為互聯(lián)網(wǎng)用戶提供計(jì)算、存儲(chǔ)、軟硬件等服務(wù),云計(jì)算系統(tǒng)可以按照用戶的需求來分配資源并根據(jù)任務(wù)的優(yōu)先級(jí)別訪問計(jì)算機(jī)和存儲(chǔ)系統(tǒng),從而提高了對(duì)軟硬件資源的利用率。
2 數(shù)據(jù)挖掘算法分類
通過數(shù)據(jù)挖掘去發(fā)現(xiàn)知識(shí)的模式一般有兩種,分別是統(tǒng)計(jì)分析型數(shù)據(jù)挖掘和預(yù)測(cè)決策型數(shù)據(jù)挖掘,兩類挖掘模式都有各自經(jīng)典的算法,并且從不同視角可以有以下不同的分類標(biāo)準(zhǔn)。
2.1 根據(jù)發(fā)現(xiàn)的知識(shí)種類分類
根據(jù)數(shù)據(jù)挖掘發(fā)現(xiàn)的知識(shí)種類可將數(shù)據(jù)挖掘算法分為:數(shù)據(jù)總結(jié)、數(shù)據(jù)聚類、關(guān)聯(lián)規(guī)則發(fā)現(xiàn)、序列模式發(fā)現(xiàn)、分類或預(yù)測(cè)模型知識(shí)發(fā)現(xiàn)、依賴關(guān)系或依賴模型發(fā)現(xiàn)、異常和趨勢(shì)發(fā)現(xiàn)等。
2.2 根據(jù)挖掘的數(shù)據(jù)庫種類分類
根據(jù)挖掘的數(shù)據(jù)庫種類可以分為基于各種數(shù)據(jù)庫的挖掘算法:關(guān)系型數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫、空間數(shù)據(jù)庫、文本數(shù)據(jù)庫、多媒體數(shù)據(jù)庫、異質(zhì)數(shù)據(jù)庫、遺留數(shù)據(jù)庫等,以及基于數(shù)據(jù)倉庫和基于Web的數(shù)據(jù)挖掘算法等。
2.3 根據(jù)挖掘方法采用的技術(shù)分類
根據(jù)數(shù)據(jù)挖掘方法采用的技術(shù)可以將數(shù)據(jù)挖掘算法分為:統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)、模式識(shí)別、面向數(shù)據(jù)庫或數(shù)據(jù)倉庫技術(shù)、可視化技術(shù)和神經(jīng)網(wǎng)絡(luò)等。
基于云計(jì)算的數(shù)據(jù)挖掘算法是在以上這些數(shù)據(jù)挖掘算法的基礎(chǔ)上,采用云計(jì)算平臺(tái)實(shí)現(xiàn)的數(shù)據(jù)挖掘算法。各挖掘算法對(duì)數(shù)據(jù)類型的要求是不同的,它不可能會(huì)適應(yīng)所有數(shù)據(jù)類型的挖掘應(yīng)用,所以我們?cè)诳紤]不同數(shù)據(jù)類型的挖掘和具體的應(yīng)用時(shí),往往要結(jié)合多方面的因素來考慮算法的優(yōu)缺點(diǎn),以便能夠采用多種算法實(shí)現(xiàn)有效的數(shù)據(jù)挖掘。
3 云計(jì)算平臺(tái)下的數(shù)據(jù)挖掘算法
MapReduce是一種基于云計(jì)算的并行編程模型,它采用函數(shù)式的編程思想,將整個(gè)模型的計(jì)算過程分為映射過程Map和聚集處理過程Reduce。其中,Map階段負(fù)責(zé)數(shù)據(jù)拆分,Reduce階段負(fù)責(zé)數(shù)據(jù)歸并。想要將經(jīng)典的數(shù)據(jù)挖掘算法運(yùn)行在云平臺(tái)上,算法本身并不需要太大的變化,關(guān)鍵在于要將算法按照Map/Reduce框架合理的并行化,以及將并行化后的算法部署在云計(jì)算環(huán)境中,使得它可以加載云存儲(chǔ)環(huán)境中的數(shù)據(jù)并進(jìn)行運(yùn)算。
3.1 基于Map/Reduce的Apriori算法執(zhí)行過程
⑴主進(jìn)程基于(K-1)-項(xiàng)頻繁項(xiàng)集遍歷事務(wù)數(shù)據(jù)庫,并生成K-項(xiàng)候選集,然后由Map/Reduce框架將此候選集分發(fā)到各個(gè)計(jì)算節(jié)點(diǎn);⑵每個(gè)Map節(jié)點(diǎn)處理一個(gè)數(shù)據(jù)分塊,并計(jì)算當(dāng)前分配到數(shù)據(jù)分塊的K-項(xiàng)候選集的支持?jǐn)?shù),此時(shí)Map/Reduce框架會(huì)在數(shù)據(jù)分塊和Map節(jié)點(diǎn)之間持續(xù)調(diào)度,直到所有的分塊數(shù)據(jù)處理完畢為止;⑶Reduce節(jié)點(diǎn)合并來自所有Map節(jié)點(diǎn)處理的數(shù)據(jù),獲得全局K-項(xiàng)候選集的支持?jǐn)?shù),并基于此支持?jǐn)?shù)生成(K+1)-項(xiàng)頻繁項(xiàng)集;⑷主進(jìn)程通過遍歷事務(wù)數(shù)據(jù)庫來決定該任務(wù)是否已經(jīng)完成。
3.2 基于Map/Reduce的K-Means算法執(zhí)行過程
⑴隨機(jī)選擇k個(gè)初始聚類中心,同時(shí)將這些初始聚類中心保存到OriginalCluster[]中,并將其進(jìn)行數(shù)據(jù)分塊,根據(jù)計(jì)算節(jié)點(diǎn)集群的情況,將此分塊分配給各個(gè)計(jì)算節(jié)點(diǎn);⑵在Map階段計(jì)算最近距離和總數(shù),同時(shí)在Map/Reduce框架下,把鍵值對(duì)
3.3 基于Map/Reduce的PageRank算法執(zhí)行過程
⑴Map階段讀入數(shù)據(jù)文件集中的每行數(shù)據(jù),把這些數(shù)據(jù)進(jìn)行簡單的格式處理,并拆分成
4 結(jié)束語
基于云計(jì)算數(shù)據(jù)挖掘是當(dāng)今計(jì)算機(jī)界的熱門研究領(lǐng)域,其研究成果應(yīng)用前景廣闊且價(jià)值巨大。隨著云計(jì)算技術(shù)的進(jìn)一步發(fā)展,必將對(duì)數(shù)據(jù)挖掘帶來更多新的突破和更好的技術(shù)支持。
[參考文獻(xiàn)]
[1]劉鵬.云計(jì)算[M].北京:電子工業(yè)出版社,2010.
[2]李軍華.云計(jì)算及若干數(shù)據(jù)挖掘算法的MapReduce化研究[D].成都:電子科技大學(xué),2010.