楊娟
(安徽新華學(xué)院 信息工程學(xué)院,安徽 合肥 230088)
基于云計算的海量數(shù)據(jù)挖掘體系研究
楊娟
(安徽新華學(xué)院 信息工程學(xué)院,安徽 合肥 230088)
隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,信息量激增,通過數(shù)據(jù)挖掘技術(shù)從這些海量數(shù)據(jù)中發(fā)掘?qū)€人和企業(yè)有意義的信息,但是,對數(shù)據(jù)的處理和分析能力卻非常有限,云計算的出現(xiàn),為數(shù)據(jù)挖掘技術(shù)提供了新的思路.本文提出基于云計算平臺的數(shù)據(jù)挖掘平臺,該平臺運用計算軟件即服務(wù)(SaaS)的設(shè)計思想,將提高企業(yè)在數(shù)據(jù)挖掘上的投入產(chǎn)出比,并進(jìn)一步降低企業(yè)成本從而進(jìn)一步提高企業(yè)生產(chǎn)工作效率.
數(shù)據(jù)挖掘;海量數(shù)據(jù);云計算
隨著移動互聯(lián)網(wǎng)的蓬勃發(fā)展,并伴隨著電子商務(wù)和社交平臺的全面普及,大量應(yīng)用程序的執(zhí)行產(chǎn)生了跨越千兆級門檻的數(shù)據(jù),這將反過來增加對數(shù)據(jù)處理和分析能力的要求.如何從這些海量數(shù)據(jù)中發(fā)掘?qū)€人和企業(yè)有意義的信息成為迫切需要解決的問題,數(shù)據(jù)挖掘技術(shù)就是在這樣的背景下得到廣泛的重視且被深入研究,逐步取得進(jìn)展的重要研究領(lǐng)域.
云計算的出現(xiàn),為數(shù)據(jù)挖掘技術(shù)提供了新的思路,云計算技術(shù)平臺具有對動態(tài)資源進(jìn)行分配及調(diào)度、高度虛擬化和高可用性等特性[1].將云計算技術(shù)與現(xiàn)有的數(shù)據(jù)挖掘技術(shù)向結(jié)合為新的高效率的數(shù)據(jù)挖掘平臺的出現(xiàn)提供了技術(shù)支持.例如通過大量實驗證實由Google App Engin平臺提出的并行數(shù)據(jù)挖掘模型的執(zhí)行效率要遠(yuǎn)遠(yuǎn)高于單機(jī)系統(tǒng),并且隨著數(shù)據(jù)的增大,效率優(yōu)勢就更加突出.本文提出基于云計算平臺的Web數(shù)據(jù)挖掘平臺,該平臺運用計算軟件即服務(wù)(SaaS)的設(shè)計思想,將大大提高數(shù)據(jù)挖掘的效率,減低了企業(yè)進(jìn)行數(shù)據(jù)挖掘的成本.
數(shù)據(jù)挖掘是從大量的數(shù)據(jù)中抽取模式、關(guān)聯(lián)、變化、異常和有意義的結(jié)構(gòu)的過程,這些數(shù)據(jù)多具有不完全性、包含噪音、且可能是模糊的、隨機(jī)的.從數(shù)據(jù)挖掘的一般定義可以看出數(shù)據(jù)挖掘技術(shù)涉及到統(tǒng)計學(xué)、人工智能、機(jī)器學(xué)習(xí)和模式識別等多種技術(shù),具體說來包括關(guān)聯(lián)分析、序列模式、分類、聚集和異常檢測等[2].當(dāng)前數(shù)據(jù)挖掘技術(shù)已經(jīng)在電信、金融、互聯(lián)網(wǎng)、科學(xué)研究等多個領(lǐng)域廣泛應(yīng)用,例如對商品的銷售量預(yù)測、電信客戶的客戶關(guān)系優(yōu)化、銀行分析客戶使用分銷渠道的情況等.傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)是建立在關(guān)系數(shù)據(jù)庫以及數(shù)據(jù)倉庫的基礎(chǔ)上,對數(shù)據(jù)進(jìn)行統(tǒng)計、計算和分析,找出隱藏其中的關(guān)系或者關(guān)系,為了提高挖掘結(jié)論的價值,固然希望原始數(shù)據(jù)越多越好,因此整個挖掘過程需要消耗大量的計算資源和存儲資源[3].
隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,數(shù)據(jù)規(guī)模一度從TB級發(fā)展到ZB級,并且仍然在呈現(xiàn)指數(shù)式增長,使得多年來一直使用的傳統(tǒng)的依托于關(guān)系數(shù)據(jù)庫和數(shù)據(jù)倉庫的數(shù)據(jù)挖掘系統(tǒng)在當(dāng)前海量數(shù)據(jù)挖掘上顯得力不從心,主要表現(xiàn)在(1)挖掘效率低.(2)軟硬件成本過高.海量數(shù)據(jù)需要消耗更多的計算資源和存儲空間,無疑需要對軟硬件進(jìn)行升級,高昂的軟硬件成本使人望而卻步.(3)體系架構(gòu)薄弱.傳統(tǒng)的數(shù)據(jù)挖據(jù)技術(shù)都是以單個算法為主體,不具備適應(yīng)的普遍性,面對海量數(shù)據(jù)的復(fù)雜性,只能通過使用現(xiàn)有的算法已經(jīng)在現(xiàn)有算法的基礎(chǔ)上進(jìn)行改進(jìn)[4].
2.1 云計算的概念
關(guān)于云計算,發(fā)展至今并沒有統(tǒng)一的定義,客戶端通過網(wǎng)絡(luò)自助的將運算任務(wù)交給服務(wù)器(云端),服務(wù)器運算完畢以后再將運算結(jié)果交還給客戶端,這整個過程便叫做云計算.美國前信息官昆德拉對云計算的生動描述:“曾經(jīng),每個家庭、農(nóng)莊、村落、城市都必須有自己的水井.今天,你只要打開水龍頭,干凈的水就會通過公共供水管道輸送給我們.云計算,也是這個道理,就像我們的廚房里的水一樣,可以根據(jù)我們的需要,隨時打開或者關(guān)閉.在自來水供應(yīng)公司,有一群專業(yè)人員負(fù)責(zé)水的質(zhì)量和安全以及24小時不間斷供應(yīng).當(dāng)你關(guān)上水龍頭,你不僅節(jié)約了水,你也不用為你沒有用的水付費”.
2.1.1 云計算主要服務(wù)形式
a)軟件即服務(wù)(SaaS)
SaaS服務(wù)涉及到服務(wù)供應(yīng)商和客戶,應(yīng)用軟件被統(tǒng)一部署在服務(wù)供應(yīng)商的服務(wù)器端,當(dāng)客戶有軟件使用需求時可像供應(yīng)商購買應(yīng)用軟件服務(wù),并通過瀏覽器接收服務(wù).收費會因為客戶使用軟件的數(shù)量、時間的變化而變化[5].
這種服務(wù)模式具有明顯的優(yōu)勢:服務(wù)供應(yīng)商對應(yīng)用額元件進(jìn)行統(tǒng)一的管理和維護(hù);客戶在有軟件使用需求時不需要投入大量的資金在軟硬件和相關(guān)的維護(hù),只需要接入互聯(lián)網(wǎng)的終端且支付一小部分的租賃費用即可享受到所需的軟硬件服務(wù),對于企業(yè),特別是小型企業(yè)來說,這種服務(wù)模式是最能提高效益的途徑.
以基于SaaS模式的云計算ERP為例,它的收費具體情況會根據(jù)客戶的并發(fā)用戶量以及所需數(shù)據(jù)存儲容量、使用時長和功能大小合理變化,基于此模式,客戶再也不需要花費大量的資金開發(fā)數(shù)據(jù)庫、操作系統(tǒng)等平臺軟件,繼而節(jié)省了軟件的研發(fā)成本和維護(hù)成本,基于SaaS模式的云計算ERP更注重服務(wù)的特性.
目前,提供此類服務(wù)最著名的是Salesforce.com公司,而谷歌公司提供的Doc,App以及Zoho Office也是SaaS服務(wù)模式的代表.
b)平臺即服務(wù)(PaaS)
在這種服務(wù)模式下,服務(wù)供應(yīng)商提供的服務(wù)是平臺,即提供各種服務(wù)器資源、開發(fā)環(huán)境以及用戶所需的硬件資源給客戶.用戶在供應(yīng)商提供的平臺之上開發(fā)自己所需的應(yīng)用程序,且利用互聯(lián)網(wǎng)和相關(guān)的服務(wù)器傳遞給其客戶.總的來說,PaaS為企業(yè)和個人帶來的是一個供其研發(fā)和使用的中間件平臺,借助此平臺,用戶可以開發(fā)應(yīng)用程序、數(shù)據(jù)庫管理軟件或者托管相關(guān)的資源.
c)基礎(chǔ)設(shè)施服務(wù)(IaaS)
此種服務(wù)模式主要是基于托管型的硬件方式.用戶支付費用使用服務(wù)供應(yīng)商提供的存儲資源和虛擬服務(wù)器等硬件設(shè)施,服務(wù)供應(yīng)商提供經(jīng)由內(nèi)存以及輸入輸出設(shè)備等整合而成的虛擬服務(wù)器等基礎(chǔ)硬件設(shè)備.這種服務(wù)類型的代表有AWS、BlueCloud.基礎(chǔ)設(shè)施服務(wù)的優(yōu)點是為客戶節(jié)約了大量硬件資源的同時又保證了相應(yīng)的工作能力和存儲需要.
2.1.2 云計算關(guān)鍵技術(shù)
云計算是一種提供計算能力的商業(yè)模式的革新.虛擬化和分布式系統(tǒng)都是用來實現(xiàn)云計算的關(guān)鍵技術(shù)之一.目前來講虛擬化主要常用兩個核心技術(shù):服務(wù)器虛擬化,與應(yīng)用虛擬化.目前來講分布式系統(tǒng)主要用到的兩個核心技術(shù):分布式存儲,與分布式計算.
3.1 利用云計算平臺數(shù)據(jù)挖掘的優(yōu)勢
提高數(shù)據(jù)挖掘的效率.云計算技術(shù)的核心技術(shù)之一是分布式系統(tǒng),它其中的分布式存儲技術(shù)和分布式計算技術(shù)使得分布式并行的數(shù)據(jù)挖掘模式成為可能,這將大大的提高數(shù)據(jù)挖掘的效率.同時企業(yè)的數(shù)據(jù)處理成本大大的降低,也不再依存于高性能的機(jī)器.
簡化了數(shù)據(jù)挖掘過程.由于云計算平臺采用的是并行的計算機(jī)機(jī)制,對底層進(jìn)行屏蔽.使得在原有的軟硬件資源的前提下提高了大規(guī)模數(shù)據(jù)分析處理的效率和能力.
節(jié)省數(shù)據(jù)挖掘成本.云計算平臺使用的容差機(jī)制使得節(jié)點的采購更為廉價,并且云平臺對于資源的統(tǒng)一管理和維護(hù)大大降低了企業(yè)的挖掘成本[6-7].
3.2 基于云計算的海量數(shù)據(jù)挖掘技術(shù)
3.2.1 分布式計算技術(shù)
分布式計算是將成千上萬臺計算機(jī)通過網(wǎng)絡(luò)連接成一臺虛擬的超級計算機(jī),將一個大的計算任務(wù)分割成若干個小的部分交給這些連接在網(wǎng)絡(luò)上的計算機(jī)分別執(zhí)行,最后收集這些計算機(jī)的計算結(jié)果并加以綜合以得到最終的結(jié)果的一種計算科學(xué).
云計算技術(shù)就是基于這樣的分布式計算技術(shù),但是用于實現(xiàn)這種并行計算的程序設(shè)計編碼以及后期的調(diào)試都有很大的難度,更由于在分布式系統(tǒng)環(huán)境中,網(wǎng)絡(luò)的延時將大大超過單機(jī)系統(tǒng),這種節(jié)點之間耦云計算耦合度低以及異構(gòu)性和部件間的不可靠性都給云計算分布式系統(tǒng)的使用形成了障礙.
隨著Google公司將Map/Reduce模型在云計算系統(tǒng)中的成功應(yīng)用,云計算應(yīng)用系統(tǒng)的開發(fā)更加簡便,同時也使得并行計算的效率得到了提高,這也是本文使用的云計算分布式系統(tǒng)的核心.Map/Reduce模型的基本原理是:
MapReduce計算模型主要包括了Map任務(wù)和Reduce任務(wù)的執(zhí)行,該模型對于大規(guī)模的數(shù)據(jù)采用的是分別治理的思想.首先將用戶程序的輸入文件劃分成若干份,其中每一份由集群中的某個結(jié)點負(fù)責(zé)加工并且生成過度結(jié)果,然后這些得到的過度結(jié)果再通過更多的節(jié)點加工并得到最終的處理結(jié)果.Map()函數(shù)和Reduce()函數(shù)的內(nèi)容由用戶自定義,map()函數(shù)接收鍵值對作為輸入,并將中間過程得到鍵值對作為輸出存儲起來,MapReduce框架會對其進(jìn)行聚集處理,且對于鍵值一致的數(shù)據(jù)將由reduce()函數(shù)一起處理.
3.2.2 分布式存儲技術(shù)
互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展伴隨著海量數(shù)據(jù)的產(chǎn)生,這些海量數(shù)據(jù)的存儲需求催生了大規(guī)模的分布式存儲技術(shù)的產(chǎn)生.其中分布式文件系統(tǒng)是眾多分布式存儲技術(shù)實現(xiàn)方式之一,它使得用戶訪問遠(yuǎn)程服務(wù)器的文件系統(tǒng)和訪問本地的文件系統(tǒng)一樣方便.分布式文件系統(tǒng)自身的冗余備份機(jī)制以及容錯機(jī)制來確保用戶保存在遠(yuǎn)程服務(wù)器上的海量數(shù)據(jù)的讀寫正確性.
本文使用的云計算環(huán)境中的存儲服務(wù)機(jī)制就是基于這樣的分布式存儲技術(shù),并在它的基礎(chǔ)上根據(jù)云存儲本身的特性做了對應(yīng)的配置和相關(guān)改進(jìn).
分布式存儲軟件或服務(wù)是另一類分布式存儲的實現(xiàn)的方式,像是Ryze存儲服務(wù)和很多P2P文件存儲系統(tǒng)都是屬于這種實現(xiàn)的方式.
云計算環(huán)境下的分布式文件系統(tǒng)相比較傳統(tǒng)的分布式文件系統(tǒng)有更多的需求由于個人計算機(jī)容易由于各種各樣的原因發(fā)生故障,造成節(jié)點失效,所以云計算環(huán)境下需要對整個系統(tǒng)進(jìn)行監(jiān)控,并開發(fā)容錯機(jī)制和故障恢復(fù)機(jī)制.由于數(shù)據(jù)量非常大,多是GB級,因此需要改變傳統(tǒng)文件系統(tǒng)針對中小文件的設(shè)計準(zhǔn)則,來適應(yīng)對于大容量的文件的訪問.
由于極少在文件中間寫入數(shù)據(jù),多是在文件的尾部.因此文件系統(tǒng)的設(shè)計重點可以放在文件的追加上,這樣可以進(jìn)一步提高系統(tǒng)的效率.為了方便被上層系統(tǒng)使用,文件系統(tǒng)需要接口的多樣性和開放性,對上層可以將冗余復(fù)制和負(fù)載均衡等細(xì)節(jié)屏蔽.
GFS在考慮了分布式文件系統(tǒng)的設(shè)計準(zhǔn)則的基礎(chǔ)上,又滿足了云計算時代對于分布式文件系統(tǒng)的需要.在云計算環(huán)境中,以服務(wù)的形式提供數(shù)據(jù)的存儲和操作都,云計算的出現(xiàn)給分布式存儲帶來新的需求和機(jī)遇.由于數(shù)據(jù)的類型的多樣化,既有二進(jìn)制文件又有類似XML這樣的格式化數(shù)據(jù),甚至還有關(guān)系型數(shù)據(jù)庫等,所以云計算的分布式存儲服務(wù)設(shè)計必須充分考慮到各種不同類型的數(shù)據(jù)的大規(guī)模存儲機(jī)制和對數(shù)據(jù)進(jìn)行操作的過程的性能、可靠性、安全性和便捷性.
3.3 基于云計算的海量數(shù)據(jù)挖掘模型總體架構(gòu)
將云計算技術(shù)應(yīng)用到海量數(shù)據(jù)挖掘有巨大的優(yōu)勢,所以如何構(gòu)建基于云計算的海量數(shù)據(jù)挖掘平臺是當(dāng)前面臨的關(guān)鍵問題之一,創(chuàng)建用戶參與方便,數(shù)據(jù)分析效率高的數(shù)據(jù)挖掘平臺是迫切需要解決的問題.云計算提供的分布式計算技術(shù)和分布式存儲技術(shù)使高效的海量數(shù)據(jù)挖掘成為可能.
根據(jù)云計算提供數(shù)據(jù)處理和信息共享的平臺,而大數(shù)據(jù)考慮分析算法和系統(tǒng)的效率的基本思想,本文提出的基于云計算的海量數(shù)據(jù)挖掘平臺架構(gòu).
第一層即最底層,是云計算平臺支撐層.該層將使用云計算技術(shù)的分布存儲技術(shù)和分布計算技術(shù)來實現(xiàn)數(shù)據(jù)挖掘中的行計算.
第二層是數(shù)據(jù)挖掘中間層.基于挖掘算法的多樣化、文件管理的模塊化思路,起到承上啟下的作用.
第三層應(yīng)用表示層.處于該層的是數(shù)據(jù)挖掘平臺的使用者,對其屏蔽了底層的實現(xiàn)情況,只需調(diào)用中間層提供的接口即可享受服務(wù).
通過以上整體結(jié)構(gòu)的設(shè)計,本文設(shè)計的基于云計算的海量數(shù)據(jù)挖掘體系如下.
4.1 支撐層
該層是利用云計算平臺提供的分布式存儲技術(shù)和分布式計算模型進(jìn)行海量數(shù)據(jù)的存儲以及海量數(shù)據(jù)的并行處理.
4.2 挖掘平臺層
該層主要是提供進(jìn)行傳統(tǒng)的數(shù)據(jù)挖掘的基礎(chǔ)支持,主要包括數(shù)據(jù)挖掘算法的實現(xiàn)以及對支撐層進(jìn)行封裝以及對第三方挖掘工具(例如Mathout等分布式算法)的接入.支持.
4.3 業(yè)務(wù)應(yīng)用層
服務(wù)層主要是面向用戶提供基于云計算的數(shù)據(jù)挖掘服務(wù),該層可通過可視化的界面接受用戶的挖掘請求,并將數(shù)據(jù)傳遞給中間層和支撐層.該層封裝的接口形式需要多樣化,可提供面向WebService、HTTP、XML和本地應(yīng)用程序編程接口(API)等多種接口訪問形式.
還可以通過支持結(jié)構(gòu)化查詢語句(SQL)的訪問達(dá)到自動調(diào)用云服務(wù)的目的,便捷數(shù)據(jù)挖掘過程.
綜合各層的功能,此數(shù)據(jù)挖掘平臺的流程為:用戶在服務(wù)層通過輸入模塊提供數(shù)據(jù)挖掘所用的數(shù)據(jù)和參數(shù),經(jīng)過數(shù)據(jù)預(yù)處理后,系統(tǒng)將在算法庫中選擇合適的數(shù)據(jù)挖掘算法在Map Reduce平臺進(jìn)行并行的數(shù)據(jù)挖掘,并將結(jié)果通過輸出模塊展示給用戶,同時底層的云計算技術(shù)為上層高效的海量數(shù)據(jù)挖掘工作提供了技術(shù)支持和保障.
本文提出的海量數(shù)據(jù)挖掘系統(tǒng)基于云計算平臺,可以應(yīng)用于分布式的大范圍數(shù)據(jù)挖掘中.與傳統(tǒng)的數(shù)據(jù)挖掘系統(tǒng)相比較,除了具備海量數(shù)據(jù)的處理能力以外還能夠降低硬件成本,且有較高的可擴(kuò)展性等優(yōu)點.
本文在對數(shù)據(jù)挖掘技術(shù)和云計算技術(shù)分析研究的基礎(chǔ)上,提出了基于云計算的數(shù)據(jù)挖掘系統(tǒng),并對該系統(tǒng)中使用的技術(shù)進(jìn)行了可行性分析和研究.該系統(tǒng)可以應(yīng)用于企業(yè)的海量數(shù)據(jù)挖掘,節(jié)省企業(yè)的數(shù)據(jù)挖掘成本.同時也給企業(yè)建立自己的私有化數(shù)據(jù)挖掘云平臺提供了思路.
〔1〕云時代企業(yè)數(shù)據(jù)挖掘面臨的挑戰(zhàn) (1)[EB/OL].http:// cloud.watchstor.com/storage.htm.
〔2〕陳康,鄭緯民.云計算:系統(tǒng)實例與研究現(xiàn)狀[J].軟件學(xué)報,2009,20(5):1337~1348.
〔3〕紀(jì)俊.一種基于云計算的數(shù)據(jù)挖掘平臺架構(gòu)設(shè)計與實現(xiàn)[D].青島:青島大學(xué),2009.
〔4〕J Han,M Kamber.Data mining concepts and techniques[M].Third Edition.San Francisco,CA,USA: Morgan Kaufmann Publishers,2012.
〔5〕李軍華.云計算及若干數(shù)據(jù)挖掘算法的MapReduce化研究[D].成都:電子科技學(xué),2010.
〔5〕邵峰晶,于忠清.數(shù)據(jù)挖掘原理與算法[M].北京:科學(xué)出版社,2009.
〔6〕商琳,駱斌.一種基于數(shù)據(jù)倉庫的數(shù)據(jù)挖掘系統(tǒng)的結(jié)構(gòu)框架[J].計算機(jī)應(yīng)用研究,2000,17(9):63~65.
〔7〕楊艦友,唐彥.云計算總體架構(gòu)及其應(yīng)用與商業(yè)模式探討[J].數(shù)字通信,2012(3):3~6.
TP311
A
1673-260X(2017)01-0032-03
2016-11-12