摘 要:我們現(xiàn)今正處于大數(shù)據(jù)時(shí)代當(dāng)中,同高性能計(jì)算系統(tǒng)相似,大數(shù)據(jù)系統(tǒng)在數(shù)據(jù)儲(chǔ)存以及計(jì)算方面一般為基于機(jī)群實(shí)現(xiàn)的。為了能夠在大數(shù)據(jù)環(huán)境中使數(shù)據(jù)能夠同計(jì)算間獲得更好的協(xié)調(diào),在文章中,將就大數(shù)據(jù)技術(shù)中計(jì)算與數(shù)據(jù)的協(xié)作機(jī)制進(jìn)行一定的研究。
關(guān)鍵詞:大數(shù)據(jù)技術(shù);計(jì)算與數(shù)據(jù);協(xié)作機(jī)制
引言
在現(xiàn)今信息技術(shù)發(fā)展中,數(shù)據(jù)同計(jì)算可以說(shuō)是信息技術(shù)發(fā)展過(guò)程中的兩個(gè)重要主題,在這兩個(gè)主題的基礎(chǔ)上,信息技術(shù)也逐漸出現(xiàn)了大數(shù)據(jù)技術(shù)概念。從嚴(yán)格意義來(lái)說(shuō),所謂大數(shù)據(jù)技術(shù),即是針對(duì)于海量數(shù)據(jù)的分析、存儲(chǔ)以及發(fā)布技術(shù)。對(duì)于這部分海量數(shù)據(jù)來(lái)說(shuō),我們很難直接對(duì)其進(jìn)行應(yīng)用,在獲得數(shù)據(jù)之后,需要在經(jīng)過(guò)一定處理后才能夠獲得有用的數(shù)據(jù),如何能夠?qū)崿F(xiàn)大數(shù)據(jù)時(shí)代下數(shù)據(jù)同計(jì)算的科學(xué)協(xié)作、并能夠?qū)⑵湫纬梢环N機(jī)制,則成為了目前非常重要的一項(xiàng)問(wèn)題。
1 計(jì)算同數(shù)據(jù)協(xié)作機(jī)制對(duì)比
對(duì)于面對(duì)數(shù)據(jù)系統(tǒng)來(lái)說(shuō),其一般為分布式系統(tǒng)類型,即通過(guò)將計(jì)算向數(shù)據(jù)進(jìn)行遷移對(duì)系統(tǒng)中數(shù)據(jù)傳遞代價(jià)進(jìn)行降低,可以說(shuō)是一種通過(guò)計(jì)算對(duì)數(shù)據(jù)進(jìn)行尋找的方式。要想對(duì)數(shù)據(jù)進(jìn)行計(jì)算,實(shí)現(xiàn)數(shù)據(jù)的定位可以說(shuō)是一項(xiàng)重要的前提,而數(shù)據(jù)切分以及存儲(chǔ)方式情況也將對(duì)計(jì)算的模式以及處理效率產(chǎn)生影響。對(duì)此,要想對(duì)數(shù)據(jù)同計(jì)算間的科學(xué)協(xié)作進(jìn)行實(shí)現(xiàn),就需要對(duì)數(shù)據(jù)在分布式文件系統(tǒng)中的存儲(chǔ)方式進(jìn)行研究。而由于在分布式系統(tǒng)當(dāng)中,需要對(duì)數(shù)據(jù)冗余、節(jié)點(diǎn)失效以及備份等問(wèn)題進(jìn)行解決,就對(duì)數(shù)據(jù)同計(jì)算協(xié)作價(jià)值的研究帶來(lái)了較大的挑戰(zhàn)。在兩者協(xié)作機(jī)制研究中,數(shù)據(jù)同計(jì)算的一致性可以說(shuō)是研究重點(diǎn),需要首先從該方面進(jìn)行討論與解決。
1.1 位置一致性映射模型
對(duì)于分布式系統(tǒng)中數(shù)據(jù)同計(jì)算的一致性問(wèn)題,我們可以將其理解為將兩者在同一節(jié)點(diǎn)位置映射,即在數(shù)據(jù)存儲(chǔ)區(qū)域發(fā)起計(jì)算。以網(wǎng)格計(jì)算系統(tǒng)為例,其到達(dá)客戶節(jié)點(diǎn)的數(shù)據(jù)是計(jì)算先于數(shù)據(jù),并根據(jù)客戶端請(qǐng)求將數(shù)據(jù)映射到客戶端中進(jìn)行處理。對(duì)于Hadoop系統(tǒng)來(lái)說(shuō),就是先將數(shù)據(jù)存儲(chǔ)到系統(tǒng)的一個(gè)節(jié)點(diǎn)當(dāng)中,當(dāng)系統(tǒng)發(fā)起計(jì)算時(shí),再對(duì)元數(shù)據(jù)進(jìn)行查詢后對(duì)數(shù)據(jù)存儲(chǔ)位置進(jìn)行獲得,并將計(jì)算任務(wù)映射到節(jié)點(diǎn)當(dāng)中進(jìn)行處理。根據(jù)此種情況,我們可以將計(jì)算同數(shù)據(jù)間的映射比作是數(shù)據(jù)到節(jié)點(diǎn)的映射過(guò)程,在該過(guò)程中,數(shù)據(jù)片同計(jì)算程序在按照一定規(guī)則到節(jié)點(diǎn)進(jìn)行定位之后將兩者注入到節(jié)點(diǎn)當(dāng)中,而到該節(jié)點(diǎn)失效時(shí),數(shù)據(jù)片則會(huì)按照相應(yīng)的規(guī)則進(jìn)行數(shù)據(jù)備份以及遷移,并重新按照規(guī)則實(shí)現(xiàn)到節(jié)點(diǎn)的對(duì)應(yīng)。
在上述模型中,我們可以將計(jì)算視作是一種具有特殊特征的數(shù)據(jù)類型,這是因?yàn)閷?duì)于計(jì)算而言,其自身就是程序語(yǔ)言設(shè)計(jì)的可執(zhí)行程序片,在系統(tǒng)映射過(guò)程中,可以將其同數(shù)據(jù)進(jìn)行同等的看待,且在程序中一般也將包括相關(guān)數(shù)據(jù)的邏輯位置信息。在分布式文件中,其中的定位算法也正是數(shù)據(jù)同節(jié)點(diǎn)間的映射功能,即要想對(duì)兩者的一致性位置進(jìn)行實(shí)現(xiàn),就離不開(kāi)分布式文件系統(tǒng)的支持。同時(shí),由于在分布式系統(tǒng)中計(jì)算遷移、存儲(chǔ)遷移以及數(shù)據(jù)冗余問(wèn)題的存在,在具體功能實(shí)現(xiàn)時(shí),也將對(duì)存儲(chǔ)冗余以及均衡調(diào)度等技術(shù)進(jìn)行結(jié)合性的應(yīng)用,以此對(duì)兩者科學(xué)協(xié)作、且具有穩(wěn)定健壯特征的系統(tǒng)進(jìn)行實(shí)現(xiàn)。映射方式方面,則有哈希映射以及元數(shù)據(jù)映射等。
1.2 元數(shù)據(jù)映射算法
對(duì)于該類算法來(lái)說(shuō),其可以說(shuō)是最為基礎(chǔ)的對(duì)存儲(chǔ)位置同計(jì)算一致性進(jìn)行實(shí)現(xiàn)的方法,在實(shí)際應(yīng)用中,該方式通過(guò)數(shù)據(jù)塊存儲(chǔ)位置的查找使該位置能夠同指定的存儲(chǔ)節(jié)點(diǎn)進(jìn)行映射,在其對(duì)計(jì)算同數(shù)據(jù)的定位實(shí)現(xiàn)中,同網(wǎng)絡(luò)路由表原理較為類似,即兩者通過(guò)對(duì)有路由的查詢保證數(shù)據(jù)能夠同計(jì)算被分配到同一個(gè)節(jié)點(diǎn)當(dāng)中。對(duì)于應(yīng)用該方式的系統(tǒng)來(lái)說(shuō),其一般為主從結(jié)構(gòu)類型,如果其中出現(xiàn)單點(diǎn)失效情況,則將對(duì)整個(gè)系統(tǒng)產(chǎn)生較大的影響。對(duì)于HDFS以及GFS結(jié)構(gòu)來(lái)說(shuō),就是以該數(shù)據(jù)方式構(gòu)建的。在實(shí)際對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)時(shí),其一般會(huì)根據(jù)節(jié)點(diǎn)目前存儲(chǔ)負(fù)載情況進(jìn)行判斷,而為了避免結(jié)構(gòu)對(duì)失效情況具有過(guò)高的敏感性,也有學(xué)者通過(guò)對(duì)元數(shù)據(jù)進(jìn)行復(fù)制的方式提升系統(tǒng)可用性。
通過(guò)該方式的應(yīng)用,則能夠以較為便利的方式對(duì)機(jī)群系統(tǒng)目前狀態(tài)進(jìn)行利用,在以其為依據(jù)的基礎(chǔ)上對(duì)系統(tǒng)的負(fù)載均衡進(jìn)行實(shí)現(xiàn)。此時(shí),系統(tǒng)主節(jié)點(diǎn)則會(huì)通過(guò)一定調(diào)度算法的應(yīng)用對(duì)數(shù)據(jù)計(jì)算以及存儲(chǔ)進(jìn)行分配,在對(duì)系統(tǒng)負(fù)載均衡進(jìn)行實(shí)現(xiàn)的同將分配信息作為元數(shù)據(jù)進(jìn)行保存。目前,很多針對(duì)集群負(fù)載均衡算法都能夠在元數(shù)據(jù)方法中進(jìn)行應(yīng)用、并將其作為對(duì)柱節(jié)點(diǎn)資源進(jìn)行分配的依據(jù)。在實(shí)際應(yīng)用中,雖然該方式在網(wǎng)絡(luò)信息搜索以及大量復(fù)雜均衡算法的應(yīng)用方面具有較好的表現(xiàn),但當(dāng)系統(tǒng)具有較多數(shù)量小文件時(shí),則需要對(duì)路由數(shù)據(jù)進(jìn)行大量的維護(hù),并因此對(duì)數(shù)據(jù)的查詢效果產(chǎn)生影響。
1.3 哈希映射算法
哈希算法是一種從稀疏到緊密值的映射方式,在計(jì)算以及存儲(chǔ)定位時(shí),可以將其視作路由算法的一種,通過(guò)該方式的應(yīng)用,則能夠?qū)⒛繕?biāo)定位到節(jié)點(diǎn)位置。對(duì)于傳統(tǒng)的哈希算法,其在擴(kuò)展性以及容錯(cuò)性方面的表現(xiàn)都一般,并不能夠較為有效的對(duì)面向數(shù)據(jù)系統(tǒng)節(jié)點(diǎn)的動(dòng)態(tài)變化相適應(yīng),1997年,學(xué)者David Karger提出了使用一致性哈希算法對(duì)數(shù)據(jù)進(jìn)行定位,并在后續(xù)的改進(jìn)中逐漸使其成為了分布式存儲(chǔ)中的標(biāo)準(zhǔn)技術(shù)類型。當(dāng)系統(tǒng)對(duì)該方式進(jìn)行應(yīng)用之后,則不需要對(duì)中心節(jié)點(diǎn)元數(shù)據(jù)進(jìn)行維護(hù),可以說(shuō)對(duì)普通元數(shù)據(jù)服務(wù)器性能瓶頸以及單點(diǎn)失效問(wèn)題進(jìn)行了較好的解決,其實(shí)現(xiàn)過(guò)程為:首先通過(guò)Key值的應(yīng)用將MD5算法變換成一個(gè)32位長(zhǎng)度的16進(jìn)制數(shù)值,在以該數(shù)值進(jìn)行232取模后將其映射到環(huán)狀哈希空間,并以相同的方式將節(jié)點(diǎn)映射到環(huán)狀哈??臻g當(dāng)中,此時(shí)Key則會(huì)在哈希空間中尋找到節(jié)點(diǎn)值作為路由值。
2 計(jì)算同數(shù)據(jù)的流式拓樸協(xié)作機(jī)制
2.1 Storm系統(tǒng)
流水線技術(shù)是對(duì)高性能數(shù)據(jù)進(jìn)行處理的重要技術(shù)類型,其主要技術(shù)思想即將一個(gè)任務(wù)分解成多個(gè)具有前后關(guān)系的子任務(wù),在流水線模式中,各個(gè)子任務(wù)的啟動(dòng)同之前順序任務(wù)的完成情況具有依賴,對(duì)具有先后相關(guān)性數(shù)據(jù)分析方面具有較好的實(shí)用性特征。目前,以分布式系統(tǒng)以及流式技術(shù)為協(xié)作的框架機(jī)制已經(jīng)在應(yīng)用中表現(xiàn)出了較好的生命力以及靈活性,在本研究中,將以Storm系統(tǒng)為例進(jìn)行簡(jiǎn)單的介紹。
Storm是由Twitter所推出的一種流式分布式系統(tǒng),在該集群中,由多個(gè)工作節(jié)點(diǎn)以及一個(gè)主節(jié)點(diǎn)組成,其中,主節(jié)點(diǎn)可以說(shuō)是系統(tǒng)的核心,具有任務(wù)布置、代碼分配以及故障檢測(cè)等作用。在該系統(tǒng)中,當(dāng)其要對(duì)實(shí)時(shí)計(jì)算任務(wù)進(jìn)行完成時(shí),需要對(duì)一個(gè)Topology進(jìn)行建立,并由該模塊對(duì)數(shù)據(jù)處理進(jìn)行規(guī)劃。在Storm系統(tǒng)中,元組是基本的數(shù)據(jù)流單位,可以將其看作是一個(gè)被封裝的數(shù)據(jù)結(jié)構(gòu)類型,在Storm系統(tǒng)中,Topology可以說(shuō)是最高級(jí)別的執(zhí)行單元,其是由很多個(gè)節(jié)點(diǎn)所組成的拓?fù)洌谕負(fù)渲?,由不同?jié)點(diǎn)對(duì)相應(yīng)的計(jì)算邏輯進(jìn)行完成。在該系統(tǒng)中,Spout是系統(tǒng)的數(shù)據(jù)流生成器,而B(niǎo)olt則為不同的處理位置。對(duì)于數(shù)據(jù)流來(lái)說(shuō),由于Spout為數(shù)據(jù)源頭,在實(shí)際運(yùn)行中,其在對(duì)數(shù)據(jù)進(jìn)行讀取之后則會(huì)實(shí)現(xiàn)向Bolt的傳送,其不僅能夠?qū)Χ鄠€(gè)輸入流進(jìn)行接收,且能夠較好的對(duì)數(shù)據(jù)進(jìn)行特定處理。在Storm系統(tǒng)對(duì)Topology進(jìn)行應(yīng)用之后,其則具有了更為強(qiáng)大以及更為靈活的數(shù)據(jù)處理能力,節(jié)點(diǎn)在根據(jù)Topology邏輯對(duì)任務(wù)進(jìn)行分配之后將任務(wù)分配到相應(yīng)物理節(jié)點(diǎn)之上。而從整個(gè)架構(gòu)情況看來(lái),在數(shù)據(jù)以及計(jì)算協(xié)作處理方面,系統(tǒng)主要是通過(guò)Topology進(jìn)行分配,并在按照其描述之后由對(duì)應(yīng)的節(jié)點(diǎn)程序進(jìn)行處理,并由主節(jié)點(diǎn)將根據(jù)一個(gè)邏輯實(shí)現(xiàn)物理節(jié)點(diǎn)的映射。
2.2 流式拓樸映射模型
在Storm系統(tǒng)中,其通過(guò)Topology結(jié)構(gòu)的應(yīng)用,則能夠?qū)^為復(fù)雜的分布式數(shù)據(jù)處理任務(wù)進(jìn)行實(shí)現(xiàn),在整個(gè)過(guò)程中,對(duì)于不同計(jì)算任務(wù),Topology好比是邏輯規(guī)劃,并沒(méi)有對(duì)相應(yīng)的物理節(jié)點(diǎn)進(jìn)行對(duì)應(yīng),在系統(tǒng)主節(jié)點(diǎn)中,可能具有數(shù)量較多的該種結(jié)構(gòu),而對(duì)于每一個(gè)結(jié)構(gòu)都可以將其視作為對(duì)特殊問(wèn)題進(jìn)行處理的邏輯規(guī)劃,可以說(shuō),通過(guò)Topology結(jié)構(gòu)的應(yīng)用,則能夠?qū)Υ蠖鄶?shù)問(wèn)題的處理方式進(jìn)行描述。其整個(gè)過(guò)程可以抽象如圖1所示。
在圖1中,每一個(gè)操作就可以將其是作為Bolt,而數(shù)據(jù)發(fā)生器則為Spout,在該系統(tǒng)中,同樣由主節(jié)點(diǎn)對(duì)很多個(gè)處理節(jié)點(diǎn)進(jìn)行管理與監(jiān)控,對(duì)于每個(gè)任務(wù)的邏輯規(guī)劃,主節(jié)點(diǎn)都會(huì)在一定策略的基礎(chǔ)上對(duì)物理節(jié)點(diǎn)進(jìn)行分配,以此對(duì)相關(guān)的計(jì)算恩物進(jìn)行完成。如上圖中,主節(jié)點(diǎn)為操作1分配物理節(jié)點(diǎn)1,為操作2分配物理節(jié)點(diǎn)2,為操作3分配物理節(jié)點(diǎn)3,為操作4分配物理節(jié)點(diǎn)1,在以該種方式進(jìn)行分配之后,Topology則能夠被映射為集群物理結(jié)構(gòu),并能夠?qū)ο鄳?yīng)的計(jì)算任務(wù)進(jìn)行完成。而作為編程人員,在工作當(dāng)中僅僅需要對(duì)Topology的邏輯結(jié)構(gòu)進(jìn)行定義即可,其后續(xù)相關(guān)工作則完全由系統(tǒng)進(jìn)行維護(hù),作為設(shè)計(jì)人員,在整個(gè)操作過(guò)程中也不需要對(duì)失效問(wèn)題進(jìn)行擔(dān)心,這是因?yàn)楫?dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)失效情況時(shí),主節(jié)點(diǎn)將根據(jù)對(duì)應(yīng)操作將其對(duì)一個(gè)好的物理節(jié)點(diǎn)進(jìn)行重新的映射,以此保證整個(gè)規(guī)劃能夠得到順利的實(shí)現(xiàn)。
通過(guò)上述的分析可以了解到,通過(guò)流式拓樸映射方法的應(yīng)用,則能夠使系統(tǒng)根據(jù)Topology描述的情況對(duì)不同的集群計(jì)算結(jié)構(gòu)進(jìn)行自動(dòng)組合,以此以更為靈活的方式對(duì)復(fù)雜問(wèn)題進(jìn)行處理。在整個(gè)過(guò)程中,系統(tǒng)的主節(jié)點(diǎn)具有數(shù)據(jù)路由以及計(jì)算的作用,并通過(guò)Topology的描述對(duì)協(xié)作機(jī)制的跟蹤定位進(jìn)行實(shí)現(xiàn)。
在此,我們以MPS對(duì)Topology到物理的映射過(guò)程進(jìn)行模擬,在節(jié)點(diǎn)間,將通過(guò)Mpi_Send()函數(shù)的應(yīng)用將流數(shù)據(jù)元組注入到節(jié)點(diǎn)當(dāng)中,并在該節(jié)點(diǎn)上對(duì)相關(guān)操作進(jìn)行發(fā)起,之后,通過(guò)MPI_Recv()函數(shù)的應(yīng)用對(duì)前端數(shù)據(jù)進(jìn)行接收,以此對(duì)節(jié)點(diǎn)間通訊進(jìn)行實(shí)現(xiàn)。對(duì)于該種方式來(lái)說(shuō),其能夠?qū)Σ煌瑪?shù)據(jù)系統(tǒng)僅僅能夠進(jìn)行非實(shí)時(shí)數(shù)據(jù)批處理的問(wèn)題進(jìn)行了較好的避免,具有較好的應(yīng)用效果。
3 結(jié)束語(yǔ)
在現(xiàn)今大數(shù)據(jù)時(shí)代背景下,數(shù)據(jù)同計(jì)算間的協(xié)作具有了更為重要的意義。在上文章,我們對(duì)大數(shù)據(jù)技術(shù)中計(jì)算與數(shù)據(jù)的協(xié)作機(jī)制進(jìn)行了一定的研究,需要能夠聯(lián)系實(shí)際進(jìn)行系統(tǒng)模式的選擇與應(yīng)用,以此更好的對(duì)數(shù)據(jù)處理任務(wù)進(jìn)行實(shí)現(xiàn)。
參考文獻(xiàn)
[1]羅象宏,舒繼武.存儲(chǔ)系統(tǒng)中的糾刪碼研究綜述[J].計(jì)算機(jī)研究與發(fā)展,2012(1):77-79.
[2]郭本俊,王鵬,陳高云,等.基于MPI的云計(jì)算模型[J].計(jì)算機(jī)工程,2009(24):166-167.
[3]楊東日,胡然.再談云計(jì)算及其產(chǎn)業(yè)發(fā)展的態(tài)勢(shì)與建議[J].通信管理與技術(shù),2014(6):88-89.