

摘要:通過數(shù)據(jù)中心資源實(shí)現(xiàn)云計(jì)算虛擬化,采用資源管理技術(shù)和虛擬化分布技術(shù)處理網(wǎng)絡(luò)中的數(shù)據(jù),并且將網(wǎng)絡(luò)技術(shù)和實(shí)際需求相結(jié)合,在服務(wù)用戶過程中能夠以服務(wù)租賃的方式實(shí)現(xiàn)。Hadoop 大數(shù)據(jù)平臺采用分布式集群系統(tǒng),其主要特點(diǎn)為拓展能力強(qiáng)、具有較高的兼容性等,在多領(lǐng)域中被廣泛應(yīng)用。因此,分析了Hadoop 大數(shù)據(jù)平臺設(shè)計(jì),將其與平臺設(shè)計(jì)原理進(jìn)行結(jié)合,進(jìn)而實(shí)現(xiàn)大數(shù)據(jù)服務(wù)平臺的功能。
關(guān)鍵詞:云計(jì)算;大數(shù)據(jù)挖掘;挖掘算法
中圖分類號:TP311.13 文獻(xiàn)標(biāo)識碼:A
0 引言
隨著智能設(shè)備的不斷普及,世界信息量早已經(jīng)超過ZB 級(數(shù)據(jù)中心級別),大數(shù)據(jù)時代下如何對具有潛在價值的信息進(jìn)行挖掘成為目前的研究熱點(diǎn)。數(shù)據(jù)挖掘技術(shù)的發(fā)展速度無法滿足信息量爆炸式增長的需求。例如,Apriori 算法要對原本數(shù)據(jù)進(jìn)行檢索,導(dǎo)致輸入/ 輸出(input/output,I/O)設(shè)備的開銷增加;FPGrowth 算法在頻繁迭代挖掘數(shù)據(jù)時,子樹結(jié)構(gòu)簡單,這不利于開展大數(shù)據(jù)挖掘活動。因此,本文根據(jù)大數(shù)據(jù)環(huán)境特點(diǎn)對數(shù)據(jù)挖掘算法進(jìn)行研究[1]。
1 相關(guān)技術(shù)研究
1.1 關(guān)聯(lián)規(guī)則挖掘
關(guān)聯(lián)規(guī)則挖掘指的是將各事物的聯(lián)系進(jìn)行挖掘,在各行業(yè)中應(yīng)用挖掘的數(shù)據(jù)。例如,在超市購物中能夠通過交易記錄對各個類型物品相關(guān)性進(jìn)行尋找,對購物者的行為進(jìn)行分析,根據(jù)分析結(jié)果對客戶進(jìn)行精準(zhǔn)分類。在數(shù)據(jù)挖掘前需要設(shè)置最小置信度和支持?jǐn)?shù),當(dāng)支持?jǐn)?shù)≥最小支持?jǐn)?shù)項(xiàng)集時,以最小置信度對有效關(guān)聯(lián)規(guī)則進(jìn)行分析,對所有頻繁項(xiàng)集進(jìn)行挖掘:假設(shè)項(xiàng)集I={i1,i2,…,in},in 表示項(xiàng),事物數(shù)據(jù)集Data=(T1,T2,…,Tn),Tn 表示事物,支持度表示項(xiàng)集A 和B 在事物集中的頻率,置信度表示項(xiàng)集A 發(fā)生時項(xiàng)集B 的發(fā)生頻率。
在關(guān)聯(lián)規(guī)則挖掘過程中, 主要包括5 個要素:①事件。其是數(shù)據(jù)集的基本單元,如用戶的行為、商品等。②信息增益。其能夠?qū)κ录线M(jìn)行衡量,從而為用戶提供信息度量標(biāo)準(zhǔn)。③事件集合。事件集合都是獨(dú)立運(yùn)行的(運(yùn)行中互不相關(guān))。④關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則指的是事物之間的關(guān)系規(guī)則。⑤支持度。支持度指的是數(shù)據(jù)集中的數(shù)據(jù)挖掘頻率,對事件集合進(jìn)行衡量。
這些要素的關(guān)系為:關(guān)聯(lián)規(guī)則挖掘的基本單位就是事件集合,能夠?qū)?shù)據(jù)集關(guān)聯(lián)的關(guān)系進(jìn)行描述;信息增益與支持度能夠?qū)﹃P(guān)聯(lián)規(guī)則和事件集合進(jìn)行評估;通過信息增益、支持度和事件集合能夠得出關(guān)聯(lián)規(guī)則[2]。
1.2 Hadoop 簡介
1.2.1 HDFS
Hadoop 分布式文件系統(tǒng)(Hadoop distributedfile system,HDFS)為獨(dú)立分布式文件系統(tǒng),能夠?qū)崿F(xiàn)存儲服務(wù),并且可用性和容錯性較高。根據(jù)流式數(shù)據(jù)訪問實(shí)現(xiàn)數(shù)據(jù)節(jié)點(diǎn)的相互備份。存儲塊大小默認(rèn)為6 M,用戶能夠自定義設(shè)置該參數(shù)。
HDFS 的結(jié)構(gòu)主要包括訪問客戶端、數(shù)據(jù)存儲和目錄管理等3 個部分。其中,訪問客戶端為分布式文件系統(tǒng)應(yīng)用程序;數(shù)據(jù)存儲能夠?qū)ο到y(tǒng)基本單元進(jìn)行存儲;目錄管理能夠?qū)ο到y(tǒng)空間進(jìn)行命名,并且實(shí)現(xiàn)集群配置管理。圖1 為HDFS 體系的架構(gòu)。
1.2.2 MapReduce
MapReduce 為分布式計(jì)算框架,能夠應(yīng)用于離線大數(shù)據(jù)計(jì)算中。通過使用函數(shù)式編程模式和Reduce 函數(shù)、Map 函數(shù),使并行計(jì)算得以實(shí)現(xiàn)。
1.3 Hadoop 云計(jì)算的數(shù)據(jù)挖掘
在實(shí)現(xiàn)數(shù)據(jù)挖掘的過程中,利用Hadoop 的集群特征對數(shù)據(jù)挖掘系統(tǒng)模塊進(jìn)行擴(kuò)展,將集群并行計(jì)算和數(shù)據(jù)處理相結(jié)合,從而對數(shù)據(jù)進(jìn)行有效的挖掘。Hadoop 指的是分布式系統(tǒng)基礎(chǔ)架構(gòu),通過與MapReduce 編程模式相結(jié)合,完成對分布式程序的開發(fā),充分使用集群高效存儲和運(yùn)算[3]。
2 基于云計(jì)算的Hadoop大數(shù)據(jù)挖掘平臺
2.1 數(shù)據(jù)挖掘平臺的架構(gòu)
將系統(tǒng)的存儲需求與數(shù)據(jù)異構(gòu)性、繁雜性、分布性的特點(diǎn)相結(jié)合,實(shí)現(xiàn)基于Hadoop 架構(gòu)的數(shù)據(jù)挖掘平臺創(chuàng)建。基于用戶需求,系統(tǒng)利用云計(jì)算集群平臺將數(shù)據(jù)均勻分配到計(jì)算機(jī)節(jié)點(diǎn)中,并且針對需要處理的數(shù)據(jù)開展并行處理和分布式存儲。在對存儲架構(gòu)進(jìn)行設(shè)計(jì)時,能夠使用HDFS 實(shí)現(xiàn)信息的收集和存儲,并且針對不同應(yīng)用程序編程接口(application programming interface,API)對系統(tǒng)的各種命令進(jìn)行操作,對數(shù)據(jù)進(jìn)行并行加載、存儲和處理。對于需要處理的元數(shù)據(jù)進(jìn)行分解和并行處理,在HBase 分布式數(shù)據(jù)庫中存儲數(shù)據(jù)結(jié)果。該架構(gòu)基于分層思想,從上到下每層都需要透明化,使各個層都能夠相互獨(dú)立,從而使系統(tǒng)完善和擴(kuò)展更加方便,圖2 為云平臺數(shù)據(jù)挖掘架構(gòu)[4]。
(1)交互層。該層能夠?qū)崿F(xiàn)用戶和系統(tǒng)的通信,通過圖形界面使用戶能夠登錄系統(tǒng),從而能夠?yàn)橛脩舳ㄖ撇煌臉I(yè)務(wù),還能夠查看輸出結(jié)果,并且對結(jié)果進(jìn)行有效保存。
(2)業(yè)務(wù)應(yīng)用層。該層能夠控制各業(yè)務(wù)流程,利用數(shù)據(jù)挖掘算法多模塊的調(diào)用,從而實(shí)現(xiàn)交互層所提交的業(yè)務(wù)。該層能夠處理用戶提交的業(yè)務(wù),并且對其進(jìn)行調(diào)度和控制。此外,業(yè)務(wù)應(yīng)用層還能夠控制數(shù)據(jù)挖掘平臺各模塊。
(3)數(shù)據(jù)挖掘平臺層。該層作為整個系統(tǒng)的核心,能夠?qū)?shù)據(jù)挖掘階段業(yè)務(wù)流的各模塊提供至業(yè)務(wù)應(yīng)用層中;能夠?qū)崿F(xiàn)任務(wù)算法并行化處理;還能夠在業(yè)務(wù)應(yīng)用層中實(shí)現(xiàn)結(jié)果的反饋,將任務(wù)提交到分布式計(jì)算層中。通過數(shù)據(jù)挖掘平臺層能夠?qū)崿F(xiàn)的功能主要包括模式評估、數(shù)據(jù)結(jié)果展示、預(yù)處理等。
(4)分布式計(jì)算層。該層利用Hadoop 框架能夠?qū)崿F(xiàn)集群的計(jì)算和存儲,并且具備系統(tǒng)運(yùn)行模式,還能夠?qū)崿F(xiàn)分布式系統(tǒng)管理[5]。
2.2 HDFS 的讀寫數(shù)據(jù)體系
數(shù)據(jù)信息收集完畢后,Client(客戶端)可以對分布式數(shù)據(jù)進(jìn)行存儲和處理。在文件讀取過程中, 利用HDFSClient( 未完待續(xù)目錄) 對FileSystem(文件系統(tǒng))對象進(jìn)行調(diào)用,NameNode(主節(jié)點(diǎn))能夠?qū)ξ募K數(shù)據(jù)節(jié)點(diǎn)進(jìn)行反饋,進(jìn)而讀取海量數(shù)據(jù)。針對輸入流,Client 可以對Read(閱讀模式)讀取和調(diào)用。HDFSInputStream(輸入流讀寫)可以從數(shù)據(jù)節(jié)點(diǎn)讀取數(shù)據(jù),得到數(shù)據(jù)集并且進(jìn)行分析。
2.3 平臺MapReduce 編程模型
在創(chuàng)建軟件框架過程中,利用MapReduce 技術(shù)創(chuàng)建編程模型,表示MAP 映射和Reduce 規(guī)約,在大量數(shù)據(jù)并行技術(shù)中應(yīng)用,能夠創(chuàng)建輸入模式,核心編程為:
public static class Map extends MapReduceBaseimplements Mapper {
static enum Counters { INPUT_WORDS }
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
private boolean caseSensitive = true;
private Set<String> patternsToSkip = new HashSet<String>()
;
由于運(yùn)算過程中會生成臨時文件,所以能夠促進(jìn)數(shù)據(jù)交換、提高運(yùn)行速度,其具體工作流程如下。
(1)利用庫文件將程序分解為多個小任務(wù),如任務(wù)a、任務(wù)b、任務(wù)c 等。
(2)利用調(diào)度功能在作業(yè)區(qū)分配閑置任務(wù),并且根據(jù)平臺的大小實(shí)現(xiàn)任務(wù)數(shù)的分配。
(3)啟動Map 作業(yè)區(qū)被分解的任務(wù),實(shí)現(xiàn)數(shù)據(jù)輸入后對數(shù)據(jù)信息的讀取,利用關(guān)鍵字key 將數(shù)據(jù)信息傳遞給相關(guān)函數(shù),并且存儲計(jì)算過程中的臨時文件。
(4)在本地空間存儲臨時文件關(guān)鍵字key,在作業(yè)區(qū)尋找響應(yīng)位置后以輸出文件的方式進(jìn)行輸出[6]。
3 實(shí)驗(yàn)分析
3.1 Hadoop 分布式環(huán)境創(chuàng)建
本文創(chuàng)建小型集群環(huán)境,主要包括1 個master節(jié)點(diǎn)和2 個slave 節(jié)點(diǎn)。
3.2 實(shí)驗(yàn)結(jié)果
本文使用FIMI repository 事務(wù)數(shù)據(jù)集,利用Web 爬蟲得到170 萬個Web 文檔,對文檔進(jìn)行清理和信息提取。為了使實(shí)驗(yàn)運(yùn)行更流暢,將原本的文件劃分成為多個塊,一共進(jìn)行3 組實(shí)驗(yàn),每組實(shí)驗(yàn)運(yùn)行3 次。
3.2.1 并行挖掘結(jié)果
通過對比并行程序和串行程序的結(jié)果來評價挖掘結(jié)果。如果兩者結(jié)果相同,表示并行算法可靠;如果兩者結(jié)果相反,則說明存在問題,挖掘結(jié)果不精準(zhǔn)。實(shí)驗(yàn)顯示,兩種算法的頻繁項(xiàng)集數(shù)目相同,并且挖掘結(jié)果一致,因此證明本文提出的算法可靠,能夠精準(zhǔn)挖掘頻繁項(xiàng)集。
3.2.2 并行和串行的效率
采用兩個程序?qū)Σ煌瑪?shù)據(jù)進(jìn)行挖掘,最小支持度為0.25,假如存在的數(shù)據(jù)量較小,就會提高工作調(diào)度并行算法的成本和挖掘時間,無法全面展示挖掘效率的優(yōu)勢。而串行算法在挖掘500 MB 及以上的數(shù)據(jù)量時,會出現(xiàn)內(nèi)存不足等問題,從而影響運(yùn)算的結(jié)果。因此要求串行算法改進(jìn)單機(jī)配置,從而充分挖掘大數(shù)據(jù)量中的信息,而并行算法不會出現(xiàn)該問題。
此外,隨著挖掘數(shù)據(jù)量的持續(xù)增加,數(shù)據(jù)挖掘的時間會降低,數(shù)據(jù)挖掘的速度也越來越接近對數(shù)增長的速度。本文方法對數(shù)據(jù)量增長的適應(yīng)性良好,如果能夠擴(kuò)展計(jì)算節(jié)點(diǎn),能夠滿足大數(shù)據(jù)量挖掘需求[7]。
4 結(jié)語
通過研究發(fā)現(xiàn),在云計(jì)算不斷發(fā)展的背景下,Hadoop 結(jié)構(gòu)和流程設(shè)計(jì)數(shù)據(jù)挖掘平臺的方法較簡單,并且能夠創(chuàng)建完整網(wǎng)絡(luò)算法,通過仿真平臺對本文方法進(jìn)行分析,還能夠達(dá)到云計(jì)算環(huán)境下的高速分布式計(jì)算和挖掘的目標(biāo)。
參考文獻(xiàn)
[1] 唐建海. 基于Hadoop 平臺的網(wǎng)絡(luò)安全趨勢大數(shù)據(jù)挖掘算法[J]. 工業(yè)加熱,2022,51(7):67-70.
[2] 張鵬飛, 江岸, 熊念. Hadoop 平臺下基于優(yōu)化X-means 算法的大數(shù)據(jù)聚類研究[J]. 計(jì)算機(jī)測量與控制,2023,31(12):284-289,309.
[3] 高寒. 基于電商平臺的大數(shù)據(jù)挖掘系統(tǒng)的設(shè)計(jì)研究[J].信息記錄材料,2023,24(11):204-206,209.
[4] 朱衛(wèi)東,李子龍,喬良才. SSM_HADOOP 框架的高校學(xué)生手機(jī)用戶信息大數(shù)據(jù)可視化研究[J]. 軟件,2022,43(3):26-28.
[5] 李林國,查君琪,趙超,等. 基于Hadoop 平臺的大數(shù)據(jù)可視化分析實(shí)現(xiàn)與應(yīng)用[J]. 西安文理學(xué)院學(xué)報(自然科學(xué)版),2022,25(3):53-58.
[6] 王立俊,杜建華,劉驥超,等. 基于決策樹挖掘算法的氣象大數(shù)據(jù)云平臺設(shè)計(jì)[J]. 計(jì)算機(jī)測量與控制,2022,30(11):140-146.
[7] 吉鵬飛,齊建東,朱文飛. 改進(jìn)人工魚群算法在Hadoop 作業(yè)調(diào)度算法的應(yīng)用[J]. 計(jì)算機(jī)應(yīng)用研究,2014,31(12):3572-3574,3579.