姚 曄 常廣炎
(遼寧行政學(xué)院,遼寧 沈陽(yáng) 110161)
基于云計(jì)算異構(gòu)環(huán)境的Hadoop性能分析
姚 曄 常廣炎
(遼寧行政學(xué)院,遼寧 沈陽(yáng) 110161)
針對(duì)當(dāng)前云服務(wù)發(fā)展中遇到的數(shù)據(jù)量急速增加為后臺(tái)數(shù)據(jù)中心帶來(lái)的數(shù)據(jù)處理問(wèn)題,本文實(shí)施了Hadoop的性能測(cè)試。首先對(duì)云計(jì)算異構(gòu)環(huán)境的Hadoop性能進(jìn)行了描述,其次對(duì)Hadoop集群中兩種節(jié)點(diǎn)的性能差別進(jìn)行了分析,并給出了實(shí)驗(yàn)異構(gòu)的平臺(tái)的設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。
云計(jì)算;異構(gòu)環(huán)境;Hadoop
以往的以物理節(jié)點(diǎn)而設(shè)立的數(shù)據(jù)中心正在面臨變革,在上個(gè)世紀(jì)誕生的被用于大型機(jī)的虛擬化技術(shù),正在被逐漸部署到廉價(jià)通用硬件構(gòu)成的基于X86的PC服務(wù)器上。和以往的物理機(jī)器不同,虛擬機(jī)中的中間層操作系統(tǒng)和上層的應(yīng)用不會(huì)直接和底層硬件進(jìn)行交互,而是需要通過(guò)VMM層和hypervisor才能和底層的硬件接觸。通過(guò)在傳統(tǒng)的數(shù)據(jù)中心中應(yīng)用虛擬化技術(shù),能夠有效分配計(jì)算資源,催化了云計(jì)算服務(wù)在今天的廣泛應(yīng)用。本文研究了一個(gè)由虛擬機(jī)節(jié)點(diǎn)和物理機(jī)節(jié)點(diǎn)混合而成的異構(gòu)云平臺(tái),并且在平臺(tái)中實(shí)施了Hadoop的性能測(cè)試,分析了Hadoop在物理機(jī)和虛擬機(jī)混合環(huán)境下讀寫數(shù)據(jù)的實(shí)際性能,探究了在Hadoop集群中兩種節(jié)點(diǎn)的性能差別,并且闡述了接下來(lái)需要開(kāi)展的工作。
虛擬化技術(shù)能夠?qū)崿F(xiàn)虛擬機(jī)從當(dāng)前的節(jié)點(diǎn)上向另一個(gè)節(jié)點(diǎn)無(wú)縫遷移,同時(shí)確保在實(shí)際遷移的過(guò)程中,相關(guān)機(jī)器中的程序還可以正常運(yùn)行。虛擬化技術(shù)會(huì)在數(shù)據(jù)中心形成一個(gè)較大的資源池,這樣相關(guān)的用戶則是根據(jù)動(dòng)態(tài)調(diào)整,進(jìn)行資源的整合。在這個(gè)前提下,如果一個(gè)數(shù)據(jù)中心接入了互聯(lián)網(wǎng)并且應(yīng)用虛擬化技術(shù),就能夠?yàn)橥獠坑脩籼峁┍匾淖赓U資源服務(wù)項(xiàng)目,也就是公共云服務(wù)。早在2006年,國(guó)際上著名的在線商務(wù)平臺(tái)亞馬遜公司就研發(fā)了彈性云計(jì)算服務(wù)(Elastic Cloud computing),通過(guò)虛擬機(jī)來(lái)為用戶提供數(shù)據(jù)中心的相關(guān)計(jì)算資源。用戶根據(jù)時(shí)間的長(zhǎng)短和需求的不同來(lái)租用計(jì)算資源,并且支付租金。用戶則是可以利用互聯(lián)網(wǎng)將個(gè)人數(shù)據(jù)進(jìn)行傳輸,將其傳輸?shù)皆破脚_(tái)上,這樣將會(huì)對(duì)最終的結(jié)果進(jìn)行計(jì)算。
除了公共云,云服務(wù)也考慮到了數(shù)據(jù)的可靠性和隱私性,將一些數(shù)據(jù)以及應(yīng)用有效儲(chǔ)存在企業(yè)的數(shù)據(jù)中心,同時(shí)對(duì)外界進(jìn)行有效的服務(wù),對(duì)于該服務(wù)模式則是為私有云服務(wù)。
3.1 虛擬平臺(tái)的設(shè)計(jì)
實(shí)驗(yàn)平臺(tái)主要包括4臺(tái)PC,其中包括1臺(tái)1U尺寸的Dell R410抽屜式服務(wù)器,還有3臺(tái)是組裝機(jī)。服務(wù)器配置:3塊300G的SAS硬盤,1顆2.13G主頻的四核Intel Xeon E5506 CPU,8G內(nèi)存;組裝機(jī)配置:4塊容量2T的5900轉(zhuǎn)Seagate SATA硬盤以及1塊80GB的Inter固態(tài)硬盤,1顆主頻2.8G四核Inter i5 760CPU,內(nèi)存8GB。4臺(tái)機(jī)器通過(guò)一個(gè)24口TP-Link的交換機(jī)連接而成,進(jìn)而組成一個(gè)小型的局域網(wǎng)絡(luò)。
在軟件選擇方面,使用Xen 3.0版本的整體虛擬化方案當(dāng)作虛擬化軟件,使用1臺(tái)組裝機(jī)來(lái)建設(shè)虛擬機(jī)VM,并且為這臺(tái)虛擬機(jī)配置500GB硬盤空間、7G內(nèi)存以及4個(gè)VCPU,使其具有和物理節(jié)點(diǎn)相同的底層IO資源和計(jì)算資源。所有VM運(yùn)行和物理節(jié)點(diǎn)都是Centos 5.5 2.6.18內(nèi)核的64bits操作系統(tǒng),使用0.20.2版本的Hadoop,塊的副本數(shù)是3,HDFS中文件塊大小是64MB。在Hadoop架構(gòu)中的Master節(jié)點(diǎn)是Dell服務(wù)器。Slaves節(jié)點(diǎn)是虛擬機(jī)VM和2臺(tái)物理組裝機(jī)[1]。
3.2 具體實(shí)驗(yàn)設(shè)計(jì)
虛擬化將會(huì)導(dǎo)致IO的開(kāi)銷較大,這樣就必須要對(duì)Hadoop集群中虛擬機(jī)節(jié)點(diǎn)和物理機(jī)節(jié)點(diǎn)等磁盤讀寫性能進(jìn)行有效的測(cè)試,從而對(duì)其性能進(jìn)行有效的對(duì)照。另外,對(duì)于dd命令來(lái)說(shuō),在每次進(jìn)行設(shè)計(jì)的過(guò)程中,寫入設(shè)計(jì)的容量為32M。而后連續(xù)寫入100次,達(dá)到3.2G的總寫入數(shù)據(jù)量。在這個(gè)過(guò)程中,同時(shí)也要有效保證dd命令的附加參數(shù)conv等于fdatasync,這樣將會(huì)讓最終的數(shù)據(jù)無(wú)法寫入到內(nèi)存緩存就返回,而是被寫入到磁盤中。所有節(jié)點(diǎn)都需要連續(xù)進(jìn)行6次速度測(cè)試。
為了有效保證磁盤讀寫性能的真實(shí)性,必須要運(yùn)用hdparmt命令(dd命令測(cè)試得到的并不是實(shí)際的磁盤讀速度)。同時(shí)也要對(duì)每個(gè)階段進(jìn)行多次的測(cè)試工作,以此來(lái)保證測(cè)試結(jié)果的穩(wěn)定性。
現(xiàn)今在Hadoop平臺(tái)中,有效運(yùn)用TestDFSIO和sort這兩個(gè)典型的benchmark進(jìn)行平臺(tái)性能測(cè)試。關(guān)于TestDFSIO benchmark,是利用MapReduce中單個(gè)作業(yè)的方式來(lái)進(jìn)行HDFS文件系統(tǒng)多文件的讀寫性能測(cè)試。讀寫每一個(gè)文件都是通過(guò)單獨(dú)的map任務(wù)來(lái)實(shí)現(xiàn)。在實(shí)驗(yàn)過(guò)程中,設(shè)計(jì)一次讀寫文件的容量大小為1000MB,同時(shí)檢測(cè)map數(shù)也就是并發(fā)文件數(shù)為8、6、3時(shí)的集群HDFS IO性能。關(guān)于sort benchmark,是利用HDFS文件系統(tǒng)里的相關(guān)二進(jìn)制數(shù)據(jù)集來(lái)排序,并且在HDFS系統(tǒng)中寫入經(jīng)過(guò)排序的數(shù)據(jù)集。這里的sort代表在Hadoop中的特殊應(yīng)用,具體地說(shuō),是輸入數(shù)據(jù)集記錄大小和內(nèi)容不變,但是經(jīng)過(guò)洗牌過(guò)程后,每個(gè)記錄之間的位置根據(jù)順序再次排列。在實(shí)驗(yàn)過(guò)程中,首先使用Hadoop中的randomwriter作業(yè)來(lái)生成2G和27G的兩種大小不同的隨機(jī)二進(jìn)制文件,當(dāng)作sort的輸入。首先,執(zhí)行sort benchmark(對(duì)于27G的數(shù)據(jù)集),而后記錄虛擬機(jī)節(jié)點(diǎn)和物理機(jī)節(jié)點(diǎn)VMs的reduce和map階段的實(shí)際處理時(shí)間,再連續(xù)執(zhí)行3次Sort benchmark(對(duì)于2G的輸入文件)。
4.1 磁盤的讀寫性能測(cè)試
對(duì)于Hadoop的數(shù)據(jù)密集型應(yīng)用來(lái)說(shuō),其中數(shù)據(jù)的處理性能與相關(guān)的底層節(jié)點(diǎn)數(shù)據(jù)讀寫速度之間存在較大的關(guān)系。因此在進(jìn)行集群性能的測(cè)試前,必須要對(duì)每個(gè)節(jié)點(diǎn)的讀寫性能進(jìn)行有效的檢測(cè)。對(duì)于讀速度來(lái)說(shuō),VM在經(jīng)過(guò)一定的預(yù)熱之后,其讀速度穩(wěn)定在80MB/s左右,大概是PMs讀速度的75%左右。對(duì)于寫速度來(lái)說(shuō),虛擬機(jī)節(jié)點(diǎn)VM的性能大大落后于物理機(jī)節(jié)點(diǎn)PMs,前者的速度是后者的23%左右。相應(yīng)的實(shí)驗(yàn)結(jié)果證明,讀性能的開(kāi)銷要遠(yuǎn)遠(yuǎn)小于寫性能的開(kāi)銷。在寫性能方面,VM和PM的差距較大,會(huì)讓應(yīng)用Hadoop的過(guò)程中,數(shù)據(jù)寫入頻率較大[2]。
4.2 HDFS文件系統(tǒng)的吞吐量測(cè)試
要想有效對(duì)整個(gè)集群的IO性能進(jìn)行檢測(cè),其中最為重要的是吞吐量的指標(biāo)。在海量數(shù)據(jù)的應(yīng)用中,其底層文件系統(tǒng)必須具備一定的吞吐量,從而發(fā)揮其優(yōu)點(diǎn)。
在進(jìn)行實(shí)驗(yàn)的過(guò)程中,要對(duì)每個(gè)階段的數(shù)據(jù)量進(jìn)行有效分配。而且在寫數(shù)據(jù)的執(zhí)行過(guò)程中,TestDFS中的相關(guān)任務(wù)沒(méi)有被正常備份執(zhí)行,類似于木桶效應(yīng),總的完成時(shí)間和寫速度最慢的節(jié)點(diǎn)的最終完成時(shí)間密切相關(guān)。虛擬機(jī)階段VM點(diǎn)的寫性能不理想,大約為17MB/S。因此整個(gè)集群的吞吐量也和VM節(jié)點(diǎn)的寫速度相關(guān)。實(shí)驗(yàn)測(cè)得集群的實(shí)際寫吞吐量在13MB到18MB之間,這驗(yàn)證了相關(guān)的推測(cè)。
相應(yīng)地,最后一個(gè)完成寫任務(wù)的節(jié)點(diǎn)的讀速度和集群的讀吞吐量密切相關(guān)。后續(xù)的磁盤讀寫性能測(cè)試結(jié)果中,虛擬機(jī)節(jié)點(diǎn)VM和物理機(jī)節(jié)點(diǎn)PMs的讀速度平均是80MB/s和110MB/s。而集群的度吞吐量大概在70MB/s左右,和磁盤的讀寫性能相符。實(shí)驗(yàn)得出,如果任務(wù)數(shù)是3,那么測(cè)試吞吐量最小。如果任務(wù)數(shù)是8,那么測(cè)試吞吐量最大[3]。
4.3 sort benchmark
在實(shí)驗(yàn)過(guò)程中,排序隨機(jī)產(chǎn)生的數(shù)據(jù)集,并且記錄相應(yīng)的時(shí)間,因?yàn)檫@是測(cè)試大規(guī)模分布式、高性能計(jì)算系統(tǒng)的核心指標(biāo)。首先運(yùn)行數(shù)據(jù)量為27G的sort benchmark,實(shí)驗(yàn)得出,如果數(shù)據(jù)量小,在內(nèi)存中進(jìn)行完整的sort排序過(guò)程,沒(méi)有產(chǎn)生磁盤往返IO;如果數(shù)據(jù)量大,而且內(nèi)存緩存區(qū)不能進(jìn)行儲(chǔ)存,就會(huì)產(chǎn)生大量的磁盤往返IO。物理機(jī)節(jié)點(diǎn)PMs寫速度遠(yuǎn)遠(yuǎn)大于虛擬機(jī)節(jié)點(diǎn)VM寫速度,所以VM在sort階段需要花費(fèi)更多時(shí)間。為了驗(yàn)證相關(guān)的推測(cè),又執(zhí)行了數(shù)據(jù)量為2G的sort benchmark,重復(fù)三次執(zhí)行,實(shí)驗(yàn)得出,在sort階段,VM和PMS的執(zhí)行時(shí)間基本沒(méi)有差別(處理時(shí)間都是0)。
隨著MapReduce在處理密集型數(shù)據(jù)方面的廣泛應(yīng)用以及云計(jì)算服務(wù)的全面流行,怎樣在云平臺(tái)上應(yīng)用MapReduce來(lái)處理云平臺(tái)中的大規(guī)模數(shù)據(jù)已經(jīng)成為了一項(xiàng)研究熱點(diǎn)。本文研究了一個(gè)由虛擬機(jī)節(jié)點(diǎn)和物理機(jī)節(jié)點(diǎn)混合而成的異構(gòu)云平臺(tái),并且在平臺(tái)中實(shí)施了相關(guān)的基于Hadoop的性能測(cè)試,其中包括各節(jié)點(diǎn)的HDFS文件系統(tǒng)吞吐量和讀寫性能,還有sort benchmark(基于MapReduce),進(jìn)而分析了虛擬機(jī)的應(yīng)用所導(dǎo)致的性能測(cè)試中的各種問(wèn)題。希望能夠?yàn)镠adoop平臺(tái)的研究者提供有益的借鑒和參考。
[1]張密密.MapReduce模型在Hadoop實(shí)現(xiàn)中的性能分析及改進(jìn)優(yōu)化[D].成都:電子科技大學(xué),2010.
[2]鄧自立.云計(jì)算中的網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì)和Hadoop平臺(tái)研究[D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),200 9.
[3]張濤.基于網(wǎng)格計(jì)算經(jīng)濟(jì)模型的資源調(diào)度算法研究[D].無(wú)錫:江南大學(xué),200 6
[4]諶頏.基于Hadoop的標(biāo)簽推薦系統(tǒng)設(shè)計(jì)[J].電腦與電信,2015 (7):59-6 1.
Hadoop Performance Analysis of Heterogeneous Environment Based on Cloud Computing
Yao Ye Chang Guangyan
(Liaoning Academy of Governance,Shenyang 110161,Liaoning)
In view of the data processing problems in data center brought by the Rapid increase in data volume in the current development of cloud services,this article carries out the Hadoop performance testing.Firstly it describes to the Hadoop performance under cloud computing heterogeneous environment,then analyzes differences of performance between two kinds of nodes in Hadoop cluster,and gives out the experiment design and experimental results of heterogeneous platform.
cloud computing;heterogeneous environment;Hadoop
TP3
A
1008-6609(2016)10-0027-03
姚曄(19 73-),女,上海人,碩士,教授,研究方向?yàn)樵朴?jì)算。
2014年遼寧省社科立項(xiàng)課題《云計(jì)算在中小圖書館建設(shè)中的應(yīng)用研究》,課題編號(hào):L14B T Q00 5。