宋均,祝林
(1.中國西南電子技術(shù)研究所,成都610036;2.四川職業(yè)技術(shù)學(xué)院,四川遂寧629000)
基于云計(jì)算的海量數(shù)據(jù)處理平臺設(shè)計(jì)與實(shí)現(xiàn)?
宋均1,祝林2
(1.中國西南電子技術(shù)研究所,成都610036;2.四川職業(yè)技術(shù)學(xué)院,四川遂寧629000)
針對傳統(tǒng)并行處理技術(shù)在海量數(shù)據(jù)處理中存在的實(shí)際應(yīng)用問題,利用云計(jì)算技術(shù)強(qiáng)大的計(jì)算能力、高效的海量數(shù)據(jù)處理方式,結(jié)合關(guān)系數(shù)據(jù)庫實(shí)時訪問的優(yōu)點(diǎn),在Hadoop分布式計(jì)算框架基礎(chǔ)上,采用Map-Reduce架構(gòu),設(shè)計(jì)并實(shí)現(xiàn)了基于云計(jì)算的海量數(shù)據(jù)處理平臺。實(shí)踐證明,該系統(tǒng)在計(jì)算能力、穩(wěn)定性、可擴(kuò)展性等方面都優(yōu)于傳統(tǒng)并行處理的技術(shù),能有效解決海量數(shù)據(jù)大并發(fā)訪問。
云計(jì)算;海量數(shù)據(jù);Hadoop分布式計(jì)算;并行處理技術(shù)
在許多行業(yè)和機(jī)構(gòu)中,大中型數(shù)據(jù)庫和數(shù)據(jù)倉庫的大批量數(shù)據(jù)集快速批量處理有廣泛的應(yīng)用需求。如何實(shí)現(xiàn)海量數(shù)據(jù)快速交互的批量處理是管理信息系統(tǒng)所面臨日益突出的問題,也是數(shù)據(jù)集中工程中急需解決的關(guān)鍵問題[1]。傳統(tǒng)的基于并行處理的數(shù)據(jù)平臺已不能滿足海量數(shù)據(jù)處理的實(shí)際要求,海量信息技術(shù)架構(gòu)迫切需要具有動態(tài)的、可伸縮的存儲計(jì)算模式,才能實(shí)現(xiàn)快速響應(yīng)的機(jī)制[2-3]。
大型數(shù)據(jù)庫大規(guī)模數(shù)據(jù)查詢、分析、提取、更新等批量處理過程正面臨著嚴(yán)峻的實(shí)際問題[4]:一是傳統(tǒng)的數(shù)據(jù)庫復(fù)雜,查詢耗時過長,當(dāng)面臨大數(shù)據(jù)量查詢?nèi)蝿?wù)時甚至無法完成;二是系統(tǒng)面臨大并發(fā)的數(shù)據(jù)任務(wù)時,系統(tǒng)性能將急劇降低;三是傳統(tǒng)的數(shù)據(jù)庫可擴(kuò)展性差,額外增加的可擴(kuò)展硬件根本無法有效提高系統(tǒng)處理性能;四是海量數(shù)據(jù)的存取與處理成本高、維護(hù)費(fèi)用大,等。研究海量數(shù)據(jù)及時高效的處理技術(shù)將有效地提高計(jì)算機(jī)系統(tǒng)的應(yīng)用性能,從而更好地提供社會基礎(chǔ)服務(wù),帶動經(jīng)濟(jì)效益的增長。
作為一種新型的基于互聯(lián)網(wǎng)的商業(yè)計(jì)算模型,云計(jì)算提供了靈活的計(jì)算能力和高效的海量數(shù)據(jù)分析處理方法。本文將云計(jì)算應(yīng)用于關(guān)系數(shù)據(jù)庫的海量數(shù)據(jù)處理當(dāng)中,設(shè)計(jì)并搭建了基于云計(jì)算的海量數(shù)據(jù)處理平臺,為解決關(guān)系數(shù)據(jù)庫的海量數(shù)據(jù)處理問題提供了新方法。
2.1 云計(jì)算的定義
云計(jì)算(Cloud Computing)是在信息技術(shù)進(jìn)步和應(yīng)用需求拉動兩方面成熟的條件下逐漸演化而來的,于2007年被提出。到目前為止,云計(jì)算還沒有統(tǒng)一、公認(rèn)的定義,維基百科中對云計(jì)算的定義為:云計(jì)算是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過這種方式,共享的軟硬件資源和信息可以按需提供給計(jì)算機(jī)和其他設(shè)備。提供資源的網(wǎng)絡(luò)被稱為“云”?!霸啤敝械馁Y源在使用者看來是可以無限擴(kuò)展的,并且可以隨時獲取,按需使用,隨時擴(kuò)展,按使用付費(fèi)。
2.2 云計(jì)算的技術(shù)支撐
云計(jì)算是網(wǎng)格計(jì)算、分布式計(jì)算、并行計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物,它旨在通過網(wǎng)絡(luò)把多個成本相對較低的計(jì)算實(shí)體整合成一個具有強(qiáng)大計(jì)算能力的完美系統(tǒng),并借助SaaS、PaaS、IaaS、MSP等先進(jìn)的商業(yè)模式把這強(qiáng)大的計(jì)算能力分布到終端用戶手中[5-6]。云計(jì)算的一個核心理念就是通過不斷提高“云”的處理能力,進(jìn)而減少用戶終端的處理負(fù)擔(dān),最終使用戶終端簡化成一個單純的輸入輸出設(shè)備,并能按需享受“云”的強(qiáng)大計(jì)算處理能力。
3.1 系統(tǒng)需求背景
本文以某藥品經(jīng)營管理信息系統(tǒng)為例來設(shè)計(jì)和實(shí)現(xiàn)基于云計(jì)算的海量數(shù)據(jù)處理平臺。藥品經(jīng)營管理具有藥品種類繁多、統(tǒng)計(jì)數(shù)量大、藥品的批次號和有效期管理要求高、銷售門店多等特點(diǎn),因此該系統(tǒng)具有數(shù)據(jù)量大、并發(fā)用戶多、查詢復(fù)雜等特點(diǎn)。
3.2 系統(tǒng)設(shè)計(jì)要求與原則
傳統(tǒng)的基于并行處理的海量數(shù)據(jù)技術(shù)存在系統(tǒng)硬件要求高、成本大、并行程序編寫困難等缺點(diǎn),海量數(shù)據(jù)的處理要求系統(tǒng)不僅要具有良好的穩(wěn)定性、超強(qiáng)的計(jì)算能力,能夠進(jìn)行快速、并行的數(shù)據(jù)處理,還要求在面對數(shù)據(jù)庫的復(fù)雜查詢問題時,系統(tǒng)具有一定的并發(fā)能力,能夠面對一定程度海量數(shù)據(jù)的大并發(fā)訪問[7]。此外,還應(yīng)要求系統(tǒng)核心架構(gòu)具有可擴(kuò)展性,當(dāng)節(jié)點(diǎn)增加時,核心架構(gòu)可實(shí)現(xiàn)線性擴(kuò)展功能[4]。
本系統(tǒng)設(shè)計(jì)遵循的幾點(diǎn)原則:
(1)經(jīng)濟(jì)性原則,充分利用現(xiàn)有的資源構(gòu)建系統(tǒng)基礎(chǔ)設(shè)施,采用Hadoop做為底層集群部署,對系統(tǒng)硬件要求不高;
(2)高效性原則,以云計(jì)算為基礎(chǔ),充分利用云計(jì)算的優(yōu)點(diǎn)和現(xiàn)有資源,采用合理的結(jié)構(gòu)體系,實(shí)現(xiàn)對海量數(shù)據(jù)的高效處理;
(3)通用性,注重采用目前成熟的軟、硬件技術(shù),在兼顧個體用戶需求的同時,突出廣大客戶對系統(tǒng)共性的需求,盡可能地滿足不同類用戶的需求;
(4)易操作性,貫徹落實(shí)面向最終用戶的原則,建立友好界面,使用戶操作簡單直觀,易于學(xué)習(xí)和掌握。
3.3 系統(tǒng)總體架構(gòu)
傳統(tǒng)的數(shù)據(jù)倉庫是集中在一臺大型服務(wù)器上的,本系統(tǒng)將數(shù)據(jù)分割到相互聯(lián)系的一個集群上。每個服務(wù)器上有一小部分?jǐn)?shù)據(jù),整個集群的數(shù)據(jù)組合成一個完整的數(shù)據(jù)集。當(dāng)系統(tǒng)并行運(yùn)算時,整個系統(tǒng)的I/O、CPU、內(nèi)存都遠(yuǎn)遠(yuǎn)高于單服務(wù)器的架構(gòu),從而為數(shù)據(jù)處理速度帶來巨大的提升。與云計(jì)算的map/reduce/merge架構(gòu)相對應(yīng),可以將數(shù)據(jù)分割理解為map,將每臺服務(wù)器單獨(dú)處理的模塊理解為re
duce,在匯總節(jié)點(diǎn)進(jìn)行再處理可理解為Merge。系統(tǒng)總體構(gòu)架如圖1所示。
圖1 系統(tǒng)總體構(gòu)架Fig.1 System architecture
3.4 并行數(shù)據(jù)分割技術(shù)
在并行計(jì)算系統(tǒng)中,如何分割數(shù)據(jù)是整個并行計(jì)算的核心問題之一[7-8]。簡單按字段做Hash分割,可以快速分割數(shù)據(jù),但是對系統(tǒng)帶寬有很高的要求,而且對系統(tǒng)的并發(fā)和可擴(kuò)展性都有很大限制;按業(yè)務(wù)規(guī)則進(jìn)行復(fù)雜的數(shù)據(jù)分割可以極大地減少節(jié)點(diǎn)間數(shù)據(jù)的交換,降低并行計(jì)算系統(tǒng)對帶寬的要求,但同時又會導(dǎo)致巨大的分割運(yùn)算量(例如,當(dāng)對一個1.3億條的數(shù)據(jù)按業(yè)務(wù)規(guī)則進(jìn)行分割時,單服務(wù)器進(jìn)行的分割時間需要20 h以上)。
為了有效解決這個兩難問題,我們開發(fā)了并行數(shù)據(jù)分割系統(tǒng),在多機(jī)并行的模式下,按業(yè)務(wù)規(guī)則對數(shù)據(jù)進(jìn)行有效分割(例如,若對1.3億條數(shù)據(jù)用9臺機(jī)器進(jìn)行分割,可在24min內(nèi)完成)。并行分割流程框圖如圖2所示。
圖2 并行數(shù)據(jù)分割流程框圖Fig.2 Diagram of partitioning data parellet
3.5 智能節(jié)點(diǎn)替換技術(shù)
對于云計(jì)算系統(tǒng)來說,容錯技術(shù)是保證系統(tǒng)穩(wěn)定的基礎(chǔ)[9]。系統(tǒng)采用多重備份模式,實(shí)現(xiàn)一份數(shù)據(jù),多機(jī)存儲。如圖3所示,當(dāng)某個節(jié)點(diǎn)出現(xiàn)故障時,系統(tǒng)的節(jié)點(diǎn)替換模塊會自動更新節(jié)點(diǎn)信息,用備份節(jié)點(diǎn)替換掉故障節(jié)點(diǎn)。用戶在前臺操作時,絲毫感覺不到系統(tǒng)后臺的操作。
圖3 系統(tǒng)備份模式流程圖Fig.3 Backupmodes of system
3.6 內(nèi)容負(fù)載均衡技術(shù)
按內(nèi)容條件進(jìn)行負(fù)載均衡技術(shù)查詢流程如圖4所示,查詢往往包含很多過濾條件,如果能有效地利用這些過濾條件,鎖定它們所在的節(jié)點(diǎn),則可以有效減少對所有節(jié)點(diǎn)的掃描,降低運(yùn)算所帶來的時間浪費(fèi)[10]。通過指定過濾條件和數(shù)據(jù)內(nèi)容索引間的關(guān)聯(lián),查出查詢所需要訪問的節(jié)點(diǎn),再針對性地向?qū)?yīng)節(jié)點(diǎn)發(fā)出請求,大大減少了對系統(tǒng)資源的使用,同時也為海量數(shù)據(jù)的大并發(fā)查詢提供了更多的可用計(jì)算資源。
圖4 內(nèi)容負(fù)載均衡技術(shù)查詢框圖Fig.4 Content load balancing lnquiry
3.7 任務(wù)負(fù)載均衡技術(shù)
如何應(yīng)對海量數(shù)據(jù)的大并發(fā)訪問是云計(jì)算技術(shù)面臨的技術(shù)挑戰(zhàn),在并行計(jì)算時,所有子節(jié)點(diǎn)的運(yùn)算結(jié)果需要由某個匯總節(jié)點(diǎn)進(jìn)行集中再處理。在大并發(fā)的條件下,如果這個匯總節(jié)點(diǎn)是固定的,那么它的任務(wù)負(fù)荷一定會非常重,可能會造成整個系統(tǒng)的崩潰[11-12]。我們采用Master節(jié)點(diǎn)按任務(wù)進(jìn)行負(fù)載均衡的技術(shù),可以讓任意節(jié)點(diǎn)擔(dān)任Master的工作,從而極大地提高了并行計(jì)算系統(tǒng)應(yīng)對大并發(fā)的能力。
如圖5所示:實(shí)線任務(wù)和虛線任務(wù)兩個任務(wù)同時并發(fā),實(shí)線任務(wù)的匯總?cè)蝿?wù)由1號節(jié)點(diǎn)完成,虛線任務(wù)的匯總?cè)蝿?wù)則是由5號節(jié)點(diǎn)完成。
圖5 負(fù)載均衡處理框圖Fig.5 Load balancing processing
整個系統(tǒng)包括六大功能模塊,下面以系統(tǒng)在某醫(yī)療單位運(yùn)行數(shù)據(jù)情況為例,分別進(jìn)行介紹。
(1)數(shù)據(jù)分割模塊
該模塊包括中數(shù)據(jù)精確分割模塊和大數(shù)據(jù)并行分割模塊。
(3)并行查詢模塊
該模塊包括并行查詢設(shè)計(jì)模塊、并行查詢解析模塊、并行查詢控制模塊,其中并行查詢控制模塊又包括并行調(diào)度模塊、節(jié)點(diǎn)替換模塊和負(fù)載均衡模塊。
(3)安全管理模塊
該模塊包括用戶管理、Portal內(nèi)容權(quán)限管理及數(shù)據(jù)內(nèi)容權(quán)限管理。
(4)Portal模塊
該模塊包括報(bào)表管理模塊和縮略圖模塊。
(5)數(shù)據(jù)建模模塊
該模塊主要有元數(shù)據(jù)導(dǎo)入和業(yè)務(wù)視圖模塊。
(6)前臺展現(xiàn)模塊
該模塊包括用戶交互模塊、表格模塊及圖表模塊。
系統(tǒng)在試用期間,通過對廣大使用客戶的調(diào)研,發(fā)現(xiàn)該系統(tǒng)具有以下幾個特點(diǎn)。
(1)計(jì)算快速性
云計(jì)算的核心在于數(shù)據(jù)的分布式存儲與大規(guī)模并行計(jì)算,google、yahoo、百度、facebook等互聯(lián)網(wǎng)巨頭正是利用這一技術(shù)來處理它們后臺的海量數(shù)據(jù),我們將這一技術(shù)與傳統(tǒng)的關(guān)系數(shù)據(jù)庫技術(shù)相結(jié)合,設(shè)計(jì)了基于云計(jì)算技術(shù)的海量數(shù)據(jù)處理系統(tǒng),為解決關(guān)系數(shù)據(jù)庫的海量數(shù)據(jù)快速處理提供了新方法。
(2)穩(wěn)定可靠性
引進(jìn)智能節(jié)點(diǎn)替換技術(shù),在節(jié)點(diǎn)壞掉的時候,系統(tǒng)可以自動用備份節(jié)點(diǎn)替換掉故障節(jié)點(diǎn),保證系統(tǒng)的穩(wěn)定性。該系統(tǒng)采用和hadoop類似的多重備份模式,一份數(shù)據(jù),多重備份。當(dāng)有節(jié)點(diǎn)宕機(jī)后,系統(tǒng)自動用備份節(jié)點(diǎn)替換掉故障節(jié)點(diǎn),保證系統(tǒng)穩(wěn)定運(yùn)行。
(3)可有效解決并發(fā)能力
采用多項(xiàng)負(fù)載均衡技術(shù),通過dispather指定任意節(jié)點(diǎn)承擔(dān)Master任務(wù),有效消除并行計(jì)算中Master節(jié)點(diǎn)工作負(fù)荷太重的問題;通過內(nèi)容索引、二次查詢等技術(shù),有效減少按條件查詢時對所有節(jié)點(diǎn)進(jìn)行的掃描數(shù)量,避免系統(tǒng)資源浪費(fèi)等問題。
(4)可擴(kuò)展性
由于系統(tǒng)完全是基于并行模式設(shè)計(jì)的,所以當(dāng)節(jié)點(diǎn)增加時,整個系統(tǒng)的I/O、CPU、內(nèi)存等核心架構(gòu)可線性擴(kuò)展,以此提高系統(tǒng)計(jì)算性能。
(5)零客戶端
系統(tǒng)的設(shè)計(jì)按照云計(jì)算的架構(gòu),從系統(tǒng)管理[15]報(bào)表到查詢的開發(fā),用戶使用完全基于Web完成。所有操作界面都通過瀏覽器完成,用戶可以使用私有云在企業(yè)內(nèi)部部署,也可以使用公有云的模式,將數(shù)據(jù)上傳到云中心,然后通過云的方式使用,分析數(shù)據(jù)。
隨著信息化進(jìn)程的不斷深入,人們對信息的需求也將不斷增加,海量數(shù)據(jù)快速處理的技術(shù)需求與目前技術(shù)現(xiàn)狀的滯后之間的矛盾將日趨激烈,已成為全球廣為關(guān)注的熱點(diǎn)議題。本文在對廣大客戶需求分析的基礎(chǔ)上,針對傳統(tǒng)并行數(shù)據(jù)庫對大數(shù)據(jù)量處理不足等現(xiàn)狀,利用云計(jì)算靈活的計(jì)算能力和高效的海量數(shù)據(jù)分析處理技術(shù),設(shè)計(jì)并搭建了基于云計(jì)算的海量數(shù)據(jù)實(shí)現(xiàn)平臺,最后對系統(tǒng)運(yùn)行情況進(jìn)行了簡要展示。系統(tǒng)在投試期間,通過對使用客戶的廣泛調(diào)研,發(fā)現(xiàn)本系統(tǒng)在計(jì)算能力、穩(wěn)定性、可擴(kuò)展性等方面都優(yōu)于傳統(tǒng)并行處理的技術(shù)方法,能有效解決系統(tǒng)大并發(fā)問題。該系統(tǒng)是云計(jì)算技術(shù)面向海量數(shù)據(jù)處理的一個實(shí)際應(yīng)用,是解決海量數(shù)據(jù)處理問題的一種成功范例,可為面向海量數(shù)據(jù)處理的系統(tǒng)開發(fā)提供參考和借鑒。
[1]2010 Digital Universe Study[EB/OL].[2010-7-27]. http://gigaom.files.wordpress.com/2010/05/2010-digital -universe-iview-5-4-10.pdf
[2]陳康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1337-1348. CHEN Kang,ZHENGWei-min.Cloud Computing:System Instances and Current Research[J].Journal of Software,2009,20(5):1337-1348.(in Chinese)
[3]黃華峰,曹王王木.云計(jì)算:中國未來的IT戰(zhàn)略[M].北京:人民郵電出版社,2010. HUANG Hua-feng,CAOQin.Cloud Computing:China Future IT Tactic[M].Beijing:People′s Post and Telecomm Press,2010.(in Chinese)
[4]Armbrust M,F(xiàn)ox A,Grifth R,et al.Above the Clouds:A Berkeley View of Cloud Computing[R]//Technical Report No.UCB/EECS-2009-28.Berkeldy:Department of Electrical Engineering and Computer Sciences,University of California,2009.
[5]劉鵬.云計(jì)算[M].北京:電子工業(yè)出版社,2011. LIU Peng.Cloud Computing[M].Beijing:Publishing House of Electronic Industry,2011.(in Chinese)
[6]Fingar P.云計(jì)算:21世紀(jì)的商業(yè)平臺[M].王靈俊,譯.北京:電子工業(yè)出版社,2010. Fingar P.Cloud Computing:21st Century Business Platform Built[M].Translated by WANG Ling-jun.Beijing:Publishing House of Electronic Industry,2011.(in Chinese)
[7]Chaves SA,Westphall CB,Lamin FR.SLA Perspective in Security Management for Cloud Computing[C]//Proceedings of the 6th International Conference on Networking and Services.Cancun,Mexico:IEEE,2010:201-217.
[8]Cryans Jean-Daniel,April A,Abran A.Criteria to Compare Cloud Computingwith CurrentDatabase Technology[C]//Proceedings of the International Conferences on Software Process and ProductMeasurement.[S.l.]:IEEE,2008:114-126.
[9]Santos N,Gummadi K P,Rodrigues R.Towards trusted cloud computing[C]//Proceedings of HotCloud 2009.San Diego,CA,USA:[s.n.],2009.
[10]Li Wei,Chen C X.Efficient Data Modeling and Querying Systemfor Multi—dimensional Spatial Data[C]//Proceedings of ACM GIS.Irvine,CA,USA:ACM,2008.
[11]Porter G,UC San Diego,La Jolla.Decoupling Storage and Computation in Hadoop with SuperDataNodes[J].ACM SIGOPSOperating System Review,2010,44(2):41-46.
[12]Raj H,NathujiR,Singh A,etal.Resourcemanagement for isolation enhanced cloud services[C]//Proceedings of the 2009 ACM Workshop on Cloud Computing Security.New York:ACM,2009:77-84.
SONG Jun was born in Suining,Sichuan Province,in 1972.He received the M.S.degree in 2002.He is now a system analyst.
Email:songjun@china.com
祝林(1970—),男,四川射洪人,1994年獲工學(xué)碩士學(xué)位,現(xiàn)為副教授。
ZHU Lin was born in Shehong,Sichuan Province,in 1970.He received the M.S.degree in 1994.He is now an associate professor.
M ass Data Processing Platform Design and Im plementation Based on Cloud Com puting
SONG Jun1,ZHU Lin2
(1.Southwest China Institute of Electronic Technology,Chengdu 610036,China;2.Sichuan Vovational and Technical College,Suining 629000,China)
According to the shortcomings of themassive data processingmethods based on traditional parallel processing techniques in practical applications,by using the powerful computing abilities and effcientways ofmass data processing of cloud computing,and taking the advantages of real-time access to relational databases,a cloud computing platform formass data processing based on the Hadoop distributed computing framework and Map-Reducemodel is developed.Practice shows that the system proposed is superior to the traditional parallel processing techniques in computing ability,stability,scalability,etc.,and what′smore,it can effectively solve the concurrent access tomass data simultaneously.
cloud computing;mass data;hadoop distributed computing;parallel processing technique
TP391
A
10.3969/j.issn.1001-893x.2012.04.029
宋均(1972—),男,四川遂寧人,2002年獲工程碩士學(xué)位,現(xiàn)為系統(tǒng)分析師;
1001-893X(2012)04-0566-05
2011-11-11;
2012-03-26