桂兵祥,何 健
(武漢工業(yè)學(xué)院計算機與信息工程系,湖北武漢 430023)
基于高性能云的分布式數(shù)據(jù)并行處理機制
桂兵祥,何 健
(武漢工業(yè)學(xué)院計算機與信息工程系,湖北武漢 430023)
描述了一個基于高性能云的分布式數(shù)據(jù)并行處理機制,該機制簡化了數(shù)據(jù)并行處理操作,且能實現(xiàn)數(shù)據(jù)盡可能在同一個地點處理而無需移動;重點對相關(guān)的存儲云和計算云基本的框架結(jié)構(gòu)設(shè)計思想進(jìn)行了簡要的介紹;實驗結(jié)果表明,該數(shù)據(jù)并行處理機制能用于高性能廣域網(wǎng)絡(luò)連接的計算機集群所產(chǎn)生的大型分布式數(shù)據(jù)集的數(shù)據(jù)并行處理,實驗數(shù)據(jù)顯示,其性能較其它系統(tǒng) (如 Hadoop)有顯著的提高。
高性能云;存儲云;計算云;分布式計算;并行處理機制
目前應(yīng)用于計算機集群、分布式計算機集群和網(wǎng)格的數(shù)據(jù)并行處理系統(tǒng)都是基于“CPU資源不足而共享”的假設(shè)之上。當(dāng)獲得 CPU,數(shù)據(jù)就移動過來,計算開始,然后返回計算結(jié)果。這種方式在實際應(yīng)用時,大部分時間被消耗在數(shù)據(jù)傳輸過程中了。
而基于云計算的分布式高性能數(shù)據(jù)并行處理機制,它永久性存儲數(shù)據(jù),盡可能在同一個地點處理數(shù)據(jù),數(shù)據(jù)在本地等待計算任務(wù)或查詢,大大減少了數(shù)據(jù)傳輸時間開銷。
目前關(guān)于云計算已有了一些應(yīng)用實例:如Google File Systerm (GFS),Amazon's S3存儲云,S impleDB數(shù)據(jù)云,EC2計算云和開源 Hadoop系統(tǒng)等。MapReduce和 Hadoop及其基本的文件系統(tǒng)GFS和 HDFS是專門為具有數(shù)據(jù)中心的計算機集群系統(tǒng)而設(shè)計的[1],它們使用集群信息將數(shù)據(jù)文件以數(shù)據(jù)塊的形式存放,是具有中央控制主機節(jié)點的耦合度緊密系統(tǒng),但這種方案對耦合松散的分布式環(huán)境使用效果并不好。而存儲云正好彌補上述不足,且以文件為單位處理數(shù)據(jù),粒度更大。
與傳統(tǒng)的數(shù)據(jù)并行處理機制完全不同,該分布式高性能數(shù)據(jù)并行處理機制是基于高性能數(shù)據(jù)云的設(shè)計:存儲云設(shè)計充分利用高性能廣域網(wǎng)絡(luò),為大型數(shù)據(jù)集提供永久性存儲服務(wù),其通過分布式索引文件對分散的數(shù)據(jù)文件及其部分實施管理,且通過復(fù)制數(shù)據(jù)以確保數(shù)據(jù)的長久性,為并行計算機制創(chuàng)造條件;計算云設(shè)計用來執(zhí)行用戶所定義的并行計算函數(shù),用數(shù)據(jù)流的處理形式對存儲云所管理的數(shù)據(jù)進(jìn)行處理。這就意味著用戶所定義的計算函數(shù)能應(yīng)用于任何存儲云所管理的數(shù)據(jù)集內(nèi)任何數(shù)據(jù)記錄,且數(shù)據(jù)集的每個部分都能獨立操作,從而提供了一個自然的并行機制。這個高性能數(shù)據(jù)并行處理系統(tǒng)設(shè)計實現(xiàn)了數(shù)據(jù)盡可能在同一個地點被頻繁處理而無需移動。下面對相關(guān)的存儲云和計算云的結(jié)構(gòu)設(shè)計思想做簡要介紹。
存儲云是為計算云提供持久的數(shù)據(jù)存儲服務(wù)、并為計算云的運算管理數(shù)據(jù),它本身不是文件系統(tǒng),但必須依靠本地文件系統(tǒng)來提供服務(wù)。為了數(shù)據(jù)文檔的安全,存儲云在必要時能隨時隨地復(fù)制數(shù)據(jù)文件并每天監(jiān)控其數(shù)量,這樣就確保了整個文件系統(tǒng)數(shù)據(jù)的一致性。
存儲云結(jié)構(gòu)設(shè)計如圖1所示。主管服務(wù)器(master server)維持系統(tǒng)內(nèi)的元數(shù)據(jù)和文件索引、支持文件系統(tǒng)查詢、提供目錄服務(wù)、控制所有從屬節(jié)點的運行、響應(yīng)用戶的請求等。主服務(wù)器還應(yīng)用 SSL連接與安全服務(wù)器通訊,從屬節(jié)點、客戶端和用戶提供驗證功能;安全服務(wù)器 (Security server)維護(hù)用戶賬號、密碼和數(shù)據(jù)文件存取等信息,它也維護(hù)已授權(quán)的從屬節(jié)點 IP地址列表,使非法的計算機不能接入系統(tǒng),防止擾亂系統(tǒng)正常運行。為了提供更好的可靠性,容許使用多個主服務(wù)器連接同一個安全服務(wù)器;從屬節(jié)點 (Slaves)是指那些存儲數(shù)據(jù)文件、基于存儲云客戶端的請求而處理數(shù)據(jù)的節(jié)點,它們通常運行在分布式數(shù)據(jù)中心的計算機平臺上。這些從屬節(jié)點僅僅接收來自主服務(wù)器的指令,所有客戶端-從屬節(jié)點和從屬節(jié)點自身間的數(shù)據(jù)傳輸必須由主節(jié)點協(xié)調(diào)進(jìn)行。
圖1 存儲云結(jié)構(gòu)設(shè)計示意圖
此前,有關(guān)存儲云的研究工作都是基于分布式計算機集群之間的帶寬相對較小的假設(shè)。而在此描述的存儲云是為高性能廣域網(wǎng)絡(luò) (如 10Gb/s)而設(shè)計的,并使用了專用的 UDT協(xié)議[2],以便能充分利用廣域高性能網(wǎng)絡(luò) (10Gb/s),同時也支持不同的路由和網(wǎng)絡(luò)協(xié)議。因其將路由、傳輸與接口進(jìn)行分層棧式結(jié)構(gòu)設(shè)計,且相互之間有定義良好的 API,這樣存儲云使用其它的路由或網(wǎng)絡(luò)協(xié)議就相對直接些。
存儲云還能高速緩存數(shù)據(jù)連接,避免了同一對節(jié)點間頻繁的數(shù)據(jù)傳輸需要建立多次連接。其安全機制是通過存取控制列表 (ACL)實現(xiàn)的。當(dāng)數(shù)據(jù)讀取操作處于開放狀態(tài)時,數(shù)據(jù)寫入存儲云系統(tǒng)操作將由 ACL控制,為了給那些特定的服務(wù)器加載數(shù)據(jù),客戶端的 IP地址必須出現(xiàn)在服務(wù)器的 ACL內(nèi)。
存儲云中,數(shù)據(jù)的組織和處理方式如下:大型數(shù)據(jù)集按存放記錄被組織分為多個文件,為了隨機存取數(shù)據(jù)文件中的某一記錄,存儲云的每個數(shù)據(jù)文件附有一個索引文件,二者同時存在于相同的節(jié)點;當(dāng)存儲云復(fù)制數(shù)據(jù)文件時,索引文件同時被復(fù)制。索引包含數(shù)據(jù)文件的每個記錄的起始地址和末端地址,還有偏移量和尺寸大小等。對于沒有索引的數(shù)據(jù)文件,計算云只能以文件為單位對其進(jìn)行處理,用戶必須編寫特定函數(shù)以解析文件、提取數(shù)據(jù)。
該存儲云版本支持大型分布式數(shù)據(jù)集,它們是通過高性能廣域網(wǎng)絡(luò)連接起來的、管理松散的分布式計算機集群系統(tǒng)。此外還使用了 P2P路由協(xié)議(the Chord Protocol),以便網(wǎng)絡(luò)節(jié)點能自如地加入系統(tǒng)或從系統(tǒng)撤出。
此計算云結(jié)構(gòu)基于如下設(shè)想:一個計算云數(shù)據(jù)集是由一個或多個物理文件組成的;用戶定義函數(shù)在計算云內(nèi)執(zhí)行計算;計算云運算器輸入一個計算云數(shù)據(jù)流,計算產(chǎn)生另一個數(shù)據(jù)流作為輸出;計算云數(shù)據(jù)流能分解為更多的數(shù)據(jù)片以供計算云服務(wù)器處理,這個過程稱為計算云處理引擎 (縮寫為 CCPE)。計算云數(shù)據(jù)片可以是一個數(shù)據(jù)記錄及其集合,也可是一個完整的文件。當(dāng)一個計算云函數(shù)處理一個數(shù)據(jù)流時,所得結(jié)果能返回到存儲云起始節(jié)點,也可寫入本地節(jié)點或移動到其它節(jié)點,取決于如何定義數(shù)據(jù)流的輸出。
計算云結(jié)構(gòu)設(shè)計如圖2所示。CCPE是計算云最主要的服務(wù),它由一個計算云服務(wù)器發(fā)起,以響應(yīng)來自計算云客戶端請求。每個 CCPE以用戶所定義的函數(shù)為基礎(chǔ),此函數(shù)稱為計算云運算器,作為計算云運算器動態(tài)庫存儲在服務(wù)器的本地磁盤上,由存儲云服務(wù)器對其管理。因考慮安全因素,加載這些庫文件到存儲云服務(wù)器操作受到一定限制。只有當(dāng)計算云客戶端程序?qū)懭胩囟ǖ拇鎯υ品?wù)器或服務(wù)器擁有者自愿下載文件,庫函數(shù)文件才能駐留存儲云服務(wù)器。
圖2 計算云模式結(jié)構(gòu)圖
一旦計算云服務(wù)器接收到來自客戶端的請求,便發(fā)起一個 CCPE并與本地計算云運算器綁定,循環(huán)執(zhí)行如下操作。
(1)CCPE接收來自客戶端的新數(shù)據(jù)片,包含文件名、偏移量、所處理的行數(shù)和其它參數(shù)。
(2)CCPE從本地磁盤或遠(yuǎn)程磁盤讀取這些存儲云管理的數(shù)據(jù)片及其記錄索引。
(3)計算云運算器處理這些數(shù)據(jù)片并將結(jié)果寫入臨時緩沖區(qū),周期性地就處理進(jìn)展情況給客戶端發(fā)送確認(rèn)信息。
(4)當(dāng)數(shù)據(jù)片處理完畢,CCPE給客戶端發(fā)送確認(rèn)信息并將結(jié)果作為輸出流寫入適當(dāng)?shù)哪康亩恕H绻辉儆袛?shù)據(jù)片要處理,客戶端將關(guān)閉并釋放與CCPE的連接。
計算云為數(shù)據(jù)流分配 CCPE之前,首先必須將數(shù)據(jù)流分成大小適合 CCPE處理的數(shù)據(jù)片,然后才能將這些數(shù)據(jù)片盡可能地分配給同一臺機器上的CCPE。注意,除非 CCPE出于空閑狀態(tài),否則來自相同文件的數(shù)據(jù)片不能同時處理。
計算云設(shè)計與存儲云一起使用,使用數(shù)據(jù)流編程模型,使某些專用的但頻繁發(fā)生的分布式計算操作執(zhí)行起來十分簡單。假設(shè)計算云所處理的大數(shù)據(jù)集被分解為多個文件。并行機制以如下兩種方法執(zhí)行:①單個文件能并行處理;②存儲云復(fù)制文件且能并行處理。計算云的重要好處是數(shù)據(jù)無需頻繁移動,能在同一地方得以處理。
在計算機集群和網(wǎng)格環(huán)境下,數(shù)據(jù)并行算法編程的最通用方法是使用消息傳遞機制,或使用 Grid Libraries和 Services,比如用 Globus-Url-Copy來分發(fā)、收集數(shù)據(jù)和編程,Globus-Job-Run運行程序。在GFS和 HDFS存儲云上執(zhí)行計算的最通用的方法是使用MapReduce,其首先使用通用的映射操作在多節(jié)點并行地提取相關(guān)數(shù)據(jù),然后傳遞這些數(shù)據(jù)到其它指定節(jié)點,最后使用還原操作在多節(jié)點處理這些數(shù)據(jù),產(chǎn)生結(jié)果數(shù)據(jù)集。而本文所描述的計算云容許用戶任意定義操作取代映射和還原操作,且和存儲云一樣也使用專用的 UDT協(xié)議,因此計算云的用戶定義函數(shù)所指定的任何數(shù)據(jù)都能在高性能廣域網(wǎng)絡(luò)上有效傳輸。
該計算云測試環(huán)境使用了 TeraSort benchmark[3],并和 Hadoop[4]進(jìn)行了性能比較。TeraSort是一個好的用以測試計算云的標(biāo)準(zhǔn),因為其兼有高強度密集的數(shù)據(jù)和計算。實驗所用的測試平臺包含 4個測試臺,32個節(jié)點,外加 1個 NFS服務(wù)器、1個頭節(jié)點和 30個計算從屬節(jié)點。頭節(jié)點配置一個Dell 1950,兩個 dual-core Xeon 3.0 GHz,16 Gb RAM。計算節(jié)點配置一個 Dell 1435s,single dual core 2.0 GHz,4 Gb RAM,1Tb single disk。4個測試臺分布式放置,每個節(jié)點由 10 Gb/s網(wǎng)絡(luò)相連接。
實驗針對 4個分布式數(shù)據(jù)中心的測試臺上的300 Gb,600 Gb,900 Gb和 1.2 Tb的數(shù)據(jù)就 30,60,90,和 120個節(jié)點做了排序比較測試,測試結(jié)果表明:該計算云性能比 Hadoop快 2倍左右。而且,測試臺越多,性能越好。進(jìn)一步分析表明,如此優(yōu)越的性能獲益于多重因素,例如最優(yōu)化的數(shù)據(jù)流管理、高效的數(shù)據(jù)傳輸協(xié)議 (UDT)等。
關(guān)于處理時間的影響,我們使用了 10μs、100 μs和 1 ms等不同時間區(qū)間,測試使用了 1到 10個CCPE。實驗結(jié)果表明:當(dāng)時間區(qū)間是 1 ms時,性能隨 CCPE個數(shù)穩(wěn)定增加。這符合預(yù)期,因為數(shù)據(jù) I/O額外開銷最小且計算被分布到多個 CCPE,由CCPE引起的額外開銷也可以忽略不計。而隨著時間區(qū)間的降低,隨 CCPE數(shù)量的增加,計算云的額外開銷變得越來越大,性能并不是呈線性增加,而是當(dāng)CCPE為 7時,性能最大,而后性能有所降低。
數(shù)據(jù)片段的數(shù)量對該計算云性能也有類似的影響,因為只要總的處理時間比 CCPE額外開銷具有更為重要的作用,計算云就將能通過使用更多的CCPE來獲得更好的并行處理性能。當(dāng)數(shù)據(jù)片段數(shù)量相對較小時,不足以供應(yīng) CCPE運算,可能促使計算云性能不穩(wěn)定,因為一個 CCPE處理完一個數(shù)據(jù)片后,不再有數(shù)據(jù)需要處理而處于空閑狀態(tài)。在實際應(yīng)用中,期望數(shù)據(jù)片段大大多于 CCPE數(shù)量。
最后,討論該計算云的容錯特性。試驗中,在數(shù)據(jù)片段處理完成之前,停止運行某個 CCPE,這就強迫計算云尋找一個新的 CCPE來繼續(xù)完成那個中斷的計算任務(wù)。實驗結(jié)果顯示:計算云能很好地處理這類問題,性能沒有大的改變。而且數(shù)據(jù)集規(guī)模越大,系統(tǒng)過度越平滑。
給出了一個基于高性能云的分布式數(shù)據(jù)并行處理機制,其支持更為簡單的數(shù)據(jù)平行處理應(yīng)用,并對其結(jié)構(gòu)框架設(shè)計進(jìn)行了簡要的描述。該機制實現(xiàn)了由高性能網(wǎng)絡(luò)(10 Gb/s)連接起來的分布式計算機集群和數(shù)據(jù)中心的數(shù)據(jù)使用數(shù)據(jù)流式處理。在某些應(yīng)用場景,這個云計算數(shù)據(jù)流處理方式比Map Reduc更簡單、直接和高效。實驗結(jié)果表明:這個計算云性能比 Hadoop高 2倍左右。與傳統(tǒng)的并行計算相比,這個計算云是面向分布式數(shù)據(jù)的,而網(wǎng)格調(diào)度系統(tǒng)是面向分布式任務(wù)的。
近幾年來,計算機集群使用已十分普遍;未來幾年,10 Gb/s高性能廣域網(wǎng)絡(luò)將把這些集群連接起來,人們將面臨一個全新的時代:那些存儲在磁盤上的大型分布式數(shù)據(jù)集,需要高性能的計算來處理,而不要或盡量少移動數(shù)據(jù),以減少大量的數(shù)據(jù)移動而增加額外開銷。而這里給出的這個基于高性能云的分布式數(shù)據(jù)并行處理機制正好為解決這一難題提供了有效的途徑。
[1] Jeffrey Dean,Sanjay Ghemawat.Map Reduce:Simplified data processing on large clusters[C]//Sixth Symposium on Operating System Design and Implementation.Cali:University of California,2004:159-172.
[2] Yunhong Gu,Robert Grossman.UDT:UDP-based data transfer for high-CSPEed wide area network[J].Computer Networks,2007,51(7):777-1799.
[3] Yunhong Gu,Robert Gross man. Sector and Sphere:the Design and Implementation of a High Performance Data Cloud[C]//2008 UK e-Science All Hands Meeting.london:Oxford,2008:259-268.
[4] Dhruba Borthaku.The Hadoop distributed file system:Architecture and design[EB/OL].http://www. lucene. apache. org/Hadoop,2007-12-20.
An distribution data parallelism with high performance cloud
GUI Bing-xiang,HE Jian
(Department of Computer and Information Engineering,Wuhan Polytechnic University,Wuhan 430023,China)
This paper presents an distributed data parallelism with high performance cloud that support simplified data parallel applications,and the design of this cloud causes the data to be processed frequently in one place without moving them.This paper prescribes the structure design of this cloud briefly,including the related storage cloud and compute cloud;The experiment results show that this data parallelism can be used for large distributed data sets over clusters connected with high performance wide area networks.This dada parallelism is about twice as fast as the others(such as Hadoop).
TP 393.02
A
1009-4881(2010)01-0060-04
10.3969/j.issn.1009-4881.2010.01.017
Key wors:high performance cloud;storage cloud;compute cloud;distributed compute;parallelism
2009-05-14.
2009-11-12.
桂兵祥 (1969-),男 ,副教授 ,碩士 ,E-mail:bgxhome@163.com.