劉芬
【摘要】 隨著互聯(lián)網(wǎng)信息時(shí)代的到來(lái),數(shù)據(jù)呈現(xiàn)爆發(fā)式增長(zhǎng)的態(tài)勢(shì),大數(shù)據(jù)時(shí)代已經(jīng)悄然來(lái)臨,如何借助信息時(shí)代的便利推動(dòng)現(xiàn)有的行業(yè)發(fā)展是當(dāng)前數(shù)據(jù)分析技術(shù)應(yīng)當(dāng)實(shí)現(xiàn)的目標(biāo)。云計(jì)算技術(shù)的產(chǎn)生已經(jīng)推動(dòng)了數(shù)據(jù)分析技術(shù)的進(jìn)步以及更新,在數(shù)據(jù)挖掘的基礎(chǔ)上,Hadoop云計(jì)算平臺(tái)算法能夠集合開(kāi)發(fā)各個(gè)單處理機(jī)的節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)對(duì)自己的分配結(jié)果處理完畢以后各自匯總結(jié)果,最終整合整個(gè)處理結(jié)果,本文探討了Hadoop云計(jì)算平臺(tái)的算法,促使Hadoop云計(jì)算平臺(tái)朝著更大規(guī)模的數(shù)據(jù)挖掘方向發(fā)展,為社會(huì)經(jīng)濟(jì)發(fā)展作出更大的貢獻(xiàn)。
關(guān)鍵詞:數(shù)據(jù)分析;Hadoop云計(jì)算平臺(tái);數(shù)據(jù)挖掘
一、Hadoop云計(jì)算平臺(tái)的技術(shù)框架搭建
云計(jì)算一直是一個(gè)典型的由產(chǎn)業(yè)需求的推動(dòng)的科學(xué)研究發(fā)展和政府支持的技術(shù),云計(jì)算在海量信息搜索以及數(shù)據(jù)處理的時(shí)候能夠發(fā)揮非常重要的作用,給行業(yè)發(fā)展帶來(lái)了很大的便利,為了抓住行業(yè)的發(fā)展機(jī)遇,本文對(duì)云計(jì)算技術(shù)進(jìn)行了探究,從技術(shù)的角度分析了如何實(shí)現(xiàn)云計(jì)算平臺(tái)的搭建。
1.1Hadoop云計(jì)算平臺(tái)的技術(shù)發(fā)展背景
Hadoop云計(jì)算平臺(tái)是由Apache基金開(kāi)發(fā)的開(kāi)源云計(jì)算平臺(tái),貫徹了谷歌公司的云計(jì)算主題思想,主要包含了HDFS的分布式文件系統(tǒng),為Hadoop云計(jì)算平臺(tái)的底層文件存儲(chǔ)提供了良好的解決方案。
在對(duì)谷歌的云計(jì)算技術(shù)進(jìn)行研究的過(guò)程中,Hadoop云計(jì)算平臺(tái)將普通的電腦大規(guī)模的集成在一起,將云計(jì)算技術(shù)廣泛地推廣出去,在我國(guó),阿里巴巴、百度公司以及騰訊等等主流的互聯(lián)網(wǎng)企業(yè)都會(huì)借助Hadoop云計(jì)算平臺(tái)的技術(shù)核心優(yōu)勢(shì)來(lái)運(yùn)轉(zhuǎn)在及的云盤,在一定程度上,Hadoop云計(jì)算平臺(tái)技術(shù)已經(jīng)成了互聯(lián)網(wǎng)行業(yè)的標(biāo)準(zhǔn)。
Hadoop云計(jì)算平臺(tái)技術(shù)借助了谷歌的GFS分布式文件系統(tǒng),重點(diǎn)處理如何借助云計(jì)算技術(shù)處理海量的數(shù)據(jù)業(yè)務(wù),如何實(shí)現(xiàn)TB/PB級(jí)別的數(shù)據(jù)存儲(chǔ),在構(gòu)建GFS系統(tǒng)的時(shí)候,分布式節(jié)點(diǎn)搭建在本地系統(tǒng)之上,形成一個(gè)具有邏輯性的文件系統(tǒng),所有的GFS系統(tǒng)都以客戶端、主服務(wù)器以及數(shù)據(jù)塊服務(wù)器為構(gòu)成主體,在訪問(wèn)系統(tǒng)文件的時(shí)候,從分布式結(jié)構(gòu)的主節(jié)點(diǎn)獲取數(shù)據(jù)元信息,截取數(shù)據(jù)模塊信息,從數(shù)據(jù)塊服務(wù)器獲取直接的文件塊,傳遞給客戶端,讓客戶端與主服務(wù)器端之間控制信息流,實(shí)現(xiàn)控制流以及數(shù)據(jù)流的分流,從而降低主要框架節(jié)點(diǎn)的負(fù)載,為系統(tǒng)的高度并行帶來(lái)了極大的可能。
Hadoop云計(jì)算平臺(tái)綜合了Google和MapReduce的編程模型以及計(jì)算框架,在編程的思路上,Hadoop云計(jì)算平臺(tái)與谷歌的編程思想總體是一致的,對(duì)大規(guī)模的數(shù)據(jù)進(jìn)行無(wú)依賴關(guān)系的集成切分,將切分好的各個(gè)節(jié)點(diǎn)獨(dú)立地發(fā)送到后續(xù)的執(zhí)行之中,在編程框架的主要節(jié)點(diǎn)上運(yùn)行JobTracker進(jìn)程,對(duì)所有的進(jìn)程信息進(jìn)行分解以及調(diào)度,負(fù)責(zé)節(jié)點(diǎn)之間的通信,當(dāng)任務(wù)執(zhí)行失敗之后進(jìn)行重新分配,在Hadoop云計(jì)算平臺(tái)的TaskTracker進(jìn)程中,本地執(zhí)行之后將運(yùn)行的結(jié)果發(fā)布給JobTracker,接受后者的調(diào)度。
Hadoop云計(jì)算平臺(tái)的整個(gè)編程框架被分為兩個(gè)部分,其中之一在于對(duì)各個(gè)運(yùn)行節(jié)點(diǎn)進(jìn)行執(zhí)行分析,掌握各個(gè)節(jié)點(diǎn)的執(zhí)行結(jié)果對(duì)其進(jìn)行匯總,重點(diǎn)設(shè)計(jì)Map函數(shù)以及Reduce函數(shù)。
1.2 Hadoop云計(jì)算平臺(tái)的執(zhí)行流程與任務(wù)調(diào)度機(jī)制設(shè)計(jì)
在酒Hadoop云計(jì)算平臺(tái)之上,整個(gè)系統(tǒng)有一個(gè)主要的節(jié)點(diǎn)是Master和若干個(gè)Worker,主要的節(jié)點(diǎn)負(fù)責(zé)任務(wù)的調(diào)度以及協(xié)調(diào)工作都是根據(jù)具體的執(zhí)行情況設(shè)計(jì)的,便于與主要的節(jié)點(diǎn)進(jìn)行信息的交互傳遞。
在執(zhí)行的過(guò)程中,從客戶端提供一個(gè)作業(yè)到Master節(jié)點(diǎn),該節(jié)點(diǎn)會(huì)自動(dòng)對(duì)數(shù)據(jù)信息進(jìn)行收集以及切割,當(dāng)沒(méi)有明確數(shù)據(jù)片大小的時(shí)候,默認(rèn)的每一個(gè)數(shù)據(jù)片的大小是64M,之后數(shù)據(jù)的自動(dòng)復(fù)制將會(huì)帶動(dòng)信息傳遞到Worker的節(jié)點(diǎn)之中。
根據(jù)主節(jié)點(diǎn)的數(shù)據(jù)負(fù)載情況,將Map函數(shù)以及Reduce的任務(wù)函數(shù)分配到各個(gè)空閑的節(jié)點(diǎn)之中,將程序傳到相對(duì)應(yīng)的工作節(jié)點(diǎn)之中,尤其是當(dāng)程序本身的大小與數(shù)據(jù)值相差較多的時(shí)候,Hadoop云計(jì)算平臺(tái)能夠?qū)崿F(xiàn)高效率的數(shù)據(jù)平臺(tái)移動(dòng)。
在Hadoop云計(jì)算平臺(tái)技術(shù)的輔助下,對(duì)于傳輸?shù)降臄?shù)據(jù)首先進(jìn)行讀取,若本地沒(méi)有存儲(chǔ),可以采用就近的原則讀取數(shù)據(jù),將計(jì)算得出的結(jié)果放入緩沖區(qū)存儲(chǔ),之后對(duì)數(shù)據(jù)進(jìn)行整理,取出中間結(jié)果,存入到本地的文件系統(tǒng)之中,通過(guò)Worker節(jié)點(diǎn)以及Master節(jié)點(diǎn)尋找最佳的任務(wù)進(jìn)度完成情況以及存儲(chǔ)的位置,方便日后對(duì)數(shù)據(jù)的調(diào)取以及遠(yuǎn)程讀取。
二、基于Hadoop云計(jì)算平臺(tái)的算法研究
2.1基于Hadoop云計(jì)算平臺(tái)的并行計(jì)算
并行計(jì)算指的是多個(gè)計(jì)算單元同時(shí)運(yùn)行帶來(lái)的計(jì)算機(jī)處理性能的提高以及速度的加快,通過(guò)數(shù)據(jù)分割,每一個(gè)小數(shù)據(jù)都是用計(jì)算單元處理的,并行計(jì)算的主要架構(gòu)有以下幾種:
第一種是對(duì)稱多處理架構(gòu),有內(nèi)存共享功能,架構(gòu)的總線以及交叉開(kāi)關(guān)并行,形成有效的處理單元,高速緩存與IO設(shè)備組成一個(gè)多系統(tǒng)的并行的運(yùn)行機(jī)制。
第二種是大規(guī)模的并行處理,大規(guī)模的星星處理在應(yīng)用的時(shí)候能夠形成多樣的計(jì)算架構(gòu),形成上萬(wàn)臺(tái)機(jī)器聯(lián)合運(yùn)轉(zhuǎn)支持多種文件系統(tǒng)運(yùn)行。
第三種是架構(gòu)是隨著Hadoop的發(fā)展,在Linux的平臺(tái)上形成的集群系統(tǒng),對(duì)于高性能的計(jì)算領(lǐng)域發(fā)展有非常重要的意義,系統(tǒng)規(guī)模的擴(kuò)大能夠單機(jī)幾天互的電腦端口,最終形成就成千上萬(wàn)個(gè)集群系統(tǒng)。
并行技術(shù)在實(shí)施的時(shí)候有三種可以實(shí)施的方法,也叫做數(shù)據(jù)并行,任務(wù)并行或者數(shù)據(jù)任務(wù)結(jié)合的情況下有效實(shí)施,最終形成良好的結(jié)合方式。
數(shù)據(jù)并行最終是將多個(gè)數(shù)據(jù)集切成多個(gè)子集,分發(fā)到不同的處理機(jī)上運(yùn)行,整理成自己的數(shù)據(jù)子集,將最終的數(shù)據(jù)并行結(jié)果按照屬性進(jìn)行記錄,將不同的屬性分列到不同的節(jié)點(diǎn)上進(jìn)行處理,按照不同的節(jié)點(diǎn)進(jìn)行執(zhí)行,最終形成合并的處理結(jié)果。endprint
并行技術(shù)中的任務(wù)并行指的是將若干個(gè)需要解決的問(wèn)題分成不同的步驟,在不同的時(shí)間節(jié)點(diǎn)進(jìn)行處理,將任務(wù)并行策略分成兩種,將若干個(gè)任務(wù)劃分成為不同的子任務(wù),分配到指定的節(jié)點(diǎn),動(dòng)態(tài)的任務(wù)分配過(guò)程最終形成數(shù)據(jù)的共享,與負(fù)載運(yùn)行問(wèn)題結(jié)合在一起。
在Hadoop云計(jì)算平臺(tái)上,并行策略以及相關(guān)的算法對(duì)數(shù)據(jù)進(jìn)行了切分,在各個(gè)節(jié)點(diǎn)處理各自的數(shù)據(jù)情況,有效地節(jié)省了集群間的通信體量,有效完善了計(jì)算機(jī)運(yùn)行的效率。
2.2基于Hadoop云計(jì)算平臺(tái)的算法基本思想
假定現(xiàn)有的云計(jì)算平臺(tái)上的所有的數(shù)據(jù)都集成一個(gè)數(shù)據(jù)空間內(nèi),需要根據(jù)K類簇特征將所有的數(shù)據(jù)空間集成為一個(gè)特定的集合,每一個(gè)類簇中的數(shù)據(jù)元素都具有相同的數(shù)據(jù)元素,這些初始的數(shù)據(jù)在系統(tǒng)內(nèi)都是依照存儲(chǔ)節(jié)點(diǎn)以及Mapper的核的數(shù)目分類,最終將數(shù)據(jù)集合整理成為一個(gè)大的集合交給Mapper執(zhí)行。自文件系統(tǒng)中,建立一個(gè)具有全局掌控能力的文件,所有的數(shù)據(jù)都可以使用這一個(gè)處理器實(shí)現(xiàn)高效率的訪問(wèn),將所有的數(shù)據(jù)集按隨機(jī)選擇的K個(gè)類簇中心逐漸迭代成為K個(gè)類簇中心,所有的文件都是共享的,每次迭代之后都會(huì)產(chǎn)生新的jilu,ji第二次生成一些用來(lái)保存Canopy的列表,最終所有的信息都能夠?yàn)槿值臄?shù)據(jù)調(diào)動(dòng)提供良好的支持。
每一個(gè)Master節(jié)點(diǎn)的負(fù)責(zé)人對(duì)各個(gè)計(jì)算節(jié)點(diǎn)都要進(jìn)行適當(dāng)?shù)卣{(diào)度,向每一個(gè)Mapper分配需要的數(shù)據(jù)片,并將所需要的信息傳輸?shù)较鄳?yīng)的文件信息之中,當(dāng)Mapper完成了該項(xiàng)任務(wù)之后,相應(yīng)的運(yùn)輸結(jié)果就會(huì)傳輸給Master節(jié)點(diǎn),之后節(jié)點(diǎn)的運(yùn)轉(zhuǎn)信息就會(huì)給適當(dāng)?shù)奶幚砥魈幚恚尚碌木垲愔行模谧x取之后按照新的聚類中心將之前的一輪聚類中心文件進(jìn)行比較,如果兩者之間的距離小于丁定閾值,則算法的聚類就能夠順利的完成,否則算法的下一步運(yùn)算流程還要繼續(xù)執(zhí)行下一次的任務(wù)。
在Hadoop云計(jì)算平臺(tái)上,Canopy-Kmeans的聚類算法在執(zhí)行的時(shí)候有兩個(gè)執(zhí)行任務(wù)的階段,一種是近似的、快速的、粗糙的所有數(shù)據(jù)集劃分為一些相互重疊的子集,也就是canopy步驟,數(shù)據(jù)級(jí)集用比較精確的計(jì)算方法再跌代聚類,當(dāng)然,這兩個(gè)階段的度量方法是不相同的,最終會(huì)得到重疊,之后所有的聚類算法計(jì)算得出的結(jié)果將進(jìn)行有效的數(shù)據(jù)集合,多輪聚類計(jì)算,有效提高了數(shù)據(jù)計(jì)算的準(zhǔn)確性,減少了復(fù)雜計(jì)算的發(fā)生,改善計(jì)算的準(zhǔn)確度。
算法的步驟有以下幾點(diǎn):
第一步是數(shù)據(jù)的預(yù)處理,
第二階段是生產(chǎn)Canopies,
第三階段是將數(shù)據(jù)分配給Canopies,
最后一步是在并行的Kmeans聚類內(nèi)運(yùn)行。
在進(jìn)行數(shù)據(jù)預(yù)處理的時(shí)候,對(duì)于數(shù)據(jù)的輸入以及輸出格式有特定的要求,將所有符合要求的數(shù)據(jù)集合成為一個(gè)特定的需要的形式能夠在key內(nèi)進(jìn)行聚類,每一個(gè)數(shù)據(jù)都是按照<行數(shù)據(jù),出現(xiàn)次數(shù)>的形式整合的。
在生成Canopies算法之后,對(duì)每一條預(yù)處理的數(shù)據(jù)進(jìn)行記錄認(rèn)證,找到每一個(gè)數(shù)據(jù)記錄的中心點(diǎn),按照Canopy算法進(jìn)行罩蓋的劃分,初始時(shí),隨機(jī)選擇一條數(shù)據(jù)作為第一個(gè)Canopyld,Mapper逐條進(jìn)行記錄和判斷,判斷其是落在一個(gè)Canopy的之內(nèi),相應(yīng)的記錄編號(hào),如果不能達(dá)到相應(yīng)的要求,就會(huì)生成一個(gè)新的Canopyld。
生成對(duì)應(yīng)的數(shù)據(jù)之后,在將數(shù)據(jù)標(biāo)注在Canopyld的階段,將所有第二個(gè)階段生成的若干個(gè)數(shù)據(jù)分配到相應(yīng)的Canopies之中,這些信息不被存在相應(yīng)的位置,每個(gè)Mapper核心都會(huì)從中讀取相應(yīng)的Canopies信息之中,最終計(jì)算出自己的配比數(shù)據(jù)片在哪個(gè)具體的Canopies之中,并數(shù)出和相應(yīng)的Canopyld列表,從中找出所有的Canopies信息,計(jì)算自己的分配數(shù)據(jù)屬于哪一種類型,最終形成相對(duì)應(yīng)的Canopyld列表。
當(dāng)算法形成之后,運(yùn)行Kmeans算法時(shí)不需要指定初始的K個(gè)中心點(diǎn),只需要這些中心點(diǎn)在現(xiàn)有的Canopy算法中生效,也不需要計(jì)算到所有的中西聚類,僅僅是計(jì)算哪個(gè)Canopy更接近,無(wú)形之中加快了Mappper的進(jìn)程。
三、總結(jié)
隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)呈現(xiàn)了爆發(fā)式的增長(zhǎng),大數(shù)據(jù)時(shí)代的悄然來(lái)臨已經(jīng)推動(dòng)了現(xiàn)有行業(yè)的更新迭代,為了最大限度地挖掘行業(yè)的發(fā)展?jié)摿Γ朴?jì)算技術(shù)成為了當(dāng)下行業(yè)發(fā)展的熱點(diǎn),承載著多種技術(shù)發(fā)展的商業(yè)模式,本文重點(diǎn)分析了Hadoop云計(jì)算平臺(tái)的技術(shù),最終形成統(tǒng)一的運(yùn)轉(zhuǎn)程序,簡(jiǎn)化并行的程序開(kāi)發(fā),對(duì)底層的數(shù)據(jù)分割進(jìn)行任務(wù)調(diào)度,并行處理,減少了容錯(cuò)問(wèn)題的封裝,提高了數(shù)據(jù)處理的效率。其中聚類分析的算法一直都是數(shù)據(jù)挖掘的重要內(nèi)容,有效規(guī)整數(shù)據(jù)類別,提取有用的信息,實(shí)現(xiàn)天然的優(yōu)勢(shì),取得令人滿意的效果。
參 考 文 獻(xiàn)
[1]…黎宏劍,…劉恒,…黃廣文,等.…基于Hadoop的海量電信數(shù)據(jù)云計(jì)算平臺(tái)研究[J].…電信科學(xué),…2012,…28(8):80-85.
[2]…張石磊,…武裝.…一種基于Hadoop云計(jì)算平臺(tái)的聚類算法優(yōu)化的研究[J].…計(jì)算機(jī)科學(xué),…2012,…39(s2):115-118.
[3]…曹風(fēng)兵.…基于Hadoop的云計(jì)算模型研究與應(yīng)用[D].…重慶大學(xué),…2011.
[4]…成靜靜.…基于Hadoop的分布式云計(jì)算/云存儲(chǔ)方案的研究與設(shè)計(jì)[J].…數(shù)據(jù)通信,…2012(5):14-18.
[5]…馬媛.…基于Hadoop的云計(jì)算平臺(tái)安全機(jī)制研究[J].…信息安全與通信保密,…2012(6):95-98.endprint