Hadoop虛擬化的性能對(duì)比和調(diào)優(yōu)經(jīng)驗(yàn)
虛擬化為Hadoop注入了前所未有的活力,從IT生產(chǎn)管理的角度,表現(xiàn)為以下幾點(diǎn):
·Hadoop和其他消耗不同類型資源的應(yīng)用一起部署共享數(shù)據(jù)中心可以提高總體資源利用率;
·靈活的虛擬機(jī)操作使得用戶可以動(dòng)態(tài)的根據(jù)數(shù)據(jù)中心資源創(chuàng)建、擴(kuò)展自己的Hadoop集群,也可以縮小當(dāng)前集群、釋放資源支持其他應(yīng)用如果需要;
·通過與虛擬化架構(gòu)提供的HA、FT集成,避免了傳統(tǒng)Hadoop集群中的單點(diǎn)失敗,再加之Hadoop本身的數(shù)據(jù)可靠性,為企業(yè)大數(shù)據(jù)應(yīng)用提供了可靠保證。
基于這些原因,vSphere Big Data Extensions(BDE)為用戶在虛擬化環(huán)境中靈活的部署和管理Hadoop集群提供了有效的支持。除卻這些優(yōu)勢(shì),虛擬化是否會(huì)傷害Hadoop運(yùn)行的性能呢?為此,我們?cè)谕纫?guī)模上做了虛擬化部署和物理部署的Hadoop集群的性能對(duì)比和優(yōu)化,實(shí)驗(yàn)表明虛擬化Hadoop集群可以很好地支持生產(chǎn)環(huán)境。
虛擬化環(huán)境和物理環(huán)境的性能對(duì)比
圖1顯示了性能調(diào)優(yōu)試驗(yàn)的部署樣式,一臺(tái)物理服務(wù)器上只部署一臺(tái)虛擬機(jī),Tasktracker和Datanode一起跑在同一個(gè)節(jié)點(diǎn)中。因?yàn)槊總€(gè)虛擬節(jié)點(diǎn)可以使用全部的服務(wù)器資源,方便進(jìn)行虛擬化和傳統(tǒng)物理環(huán)境部署的Hadoop做性能對(duì)比和分析。試驗(yàn)結(jié)果在圖2中顯示,虛擬化Hadoop相對(duì)于物理環(huán)境的性能對(duì)比幾乎是持平的。

圖1:性能對(duì)比部署

圖2:Apache Hadoop 1.2物理部署和虛擬化部署的性能對(duì)比
圖3顯示了更推薦生產(chǎn)環(huán)境使用的部署拓?fù)?,一臺(tái)物理服務(wù)器上部署多臺(tái)虛擬節(jié)點(diǎn)。如圖2所示,這種部署將增加資源利用率從而得到更高的性能。

圖3:多虛擬機(jī)的部署
同時(shí),我們把這些實(shí)驗(yàn)經(jīng)驗(yàn)內(nèi)嵌到vSphere BDE部署的Hadoop集群系統(tǒng)配置當(dāng)中,屏蔽了性能優(yōu)化的復(fù)雜性。雖然不同的數(shù)據(jù)中心設(shè)置和集群配置可能帶來不同的表現(xiàn),這里按照創(chuàng)建、配置、擴(kuò)展Hadoop集群的順序跟大家分享一些通用的經(jīng)驗(yàn):
Hadoop虛擬化的調(diào)優(yōu)經(jīng)驗(yàn):
(1)計(jì)劃初始規(guī)模:集群表現(xiàn)于跟數(shù)據(jù)中心基礎(chǔ)設(shè)施和配置密切相關(guān),建議用戶在一開始對(duì)環(huán)境表現(xiàn)難以預(yù)測(cè)的時(shí)候,先建立小規(guī)模集群,比如5臺(tái)或者6臺(tái)服務(wù)器,部署Hadoop,然后運(yùn)行標(biāo)準(zhǔn)Hadoop基準(zhǔn)了解自己數(shù)據(jù)中心的特點(diǎn)。然后根據(jù)需要逐步添加服務(wù)器和存儲(chǔ)等資源。
(2)選擇服務(wù)器:CPU建議不要少于2 * Quad-core并且激活HT(Hyper-Threading);為每個(gè)計(jì)算內(nèi)核配置至少4G內(nèi)存,并且預(yù)留6%的內(nèi)存為虛擬化的有效運(yùn)行。Hadoop性能對(duì)I/O很敏感,建議每臺(tái)服務(wù)器配置多塊本地存儲(chǔ)而不建議配置少塊大容量的硬盤??紤]任務(wù)調(diào)度的代價(jià),對(duì)于每個(gè)計(jì)算內(nèi)核不建議配置超過2塊本地存儲(chǔ)。為高性能考慮,推薦使用10G網(wǎng)卡??紤]為主節(jié)點(diǎn)服務(wù)器(運(yùn)行namenode、Jobtracker)配置雙電源以提高可靠性。
(3)虛擬化配置:本地存儲(chǔ)盡量避免配置成RAID,為每一個(gè)物理盤創(chuàng)建一個(gè)datastore虛擬化網(wǎng)絡(luò)配置時(shí)為了可靠性和網(wǎng)絡(luò)傳輸效率,隔離管理網(wǎng)絡(luò)和Hadoop集群網(wǎng)絡(luò)。如圖4所示:

圖4:虛擬化網(wǎng)絡(luò)配置
(4)系統(tǒng)設(shè)置:BDE將會(huì)自動(dòng)配置根據(jù)實(shí)驗(yàn)經(jīng)驗(yàn)取得的虛擬磁盤和操作系統(tǒng)參數(shù),向用戶屏蔽性能優(yōu)化的具體細(xì)節(jié)。建議對(duì)性能敏感的用戶替換默認(rèn)模板采用CentOS6*,因?yàn)長inux 6.* 內(nèi)核的THP(TransparentHuge Page)和EPT(Extended PageTables,Intel處理器)可以一起幫助虛擬化性能。
(5)Hadoop配置: BDE將會(huì)自動(dòng)產(chǎn)生并配置hadoop配置文件(主要在map-site.xml,core-site.xml,和 hdfs-site.xml內(nèi)),包括塊大小(blocksize),會(huì)話管理和日志功能。但是有一些相關(guān)于MapReduce任務(wù)的參數(shù),包括mapred.reduce.parallel.copies,io.sort.mb,io.sort.factor,io.sort.record.percent,和tasktracker.http.thread,需要根據(jù)不同負(fù)載具體設(shè)置。
(5)擴(kuò)展建議:如果用戶觀察集群中CPU的利用率經(jīng)常超過80%,建議加入新的節(jié)點(diǎn)。另外單個(gè)存貯節(jié)點(diǎn)的容量不建議超過24TB,否則一旦節(jié)點(diǎn)失敗,數(shù)據(jù)備份拷貝容易造成數(shù)據(jù)擁塞。擴(kuò)展可以按照小規(guī)模集群上運(yùn)行性能基準(zhǔn)經(jīng)驗(yàn)和資源使用情況進(jìn)行。
如有任何問題,您可以發(fā)郵件至bigdata_apac@vmware.com。
關(guān)于vSphere Big Data Extensions:
VMware vSphere Big Data Extensions(簡(jiǎn)稱BDE)基于vSphere平臺(tái)支持大數(shù)據(jù)和Hadoop作業(yè)。BDE以開源Serengeti項(xiàng)目為基礎(chǔ),為企業(yè)級(jí)用戶提供一系列整合的管理工具,通過在vSphere上虛擬化Hadoop,幫助用戶在基礎(chǔ)設(shè)施上實(shí)現(xiàn)靈活、彈性、安全和快捷的大數(shù)據(jù)部署、運(yùn)行和管理工作。了解更多關(guān)于VMware vSphere Big Data Extensions的信息,請(qǐng)參見http://www.vmware.com/hadoop。
作者簡(jiǎn)介
李欣慧
VMware軟件高級(jí)工程師
現(xiàn)擔(dān)任VMware大數(shù)據(jù)部門高級(jí)工程師,致力于大數(shù)據(jù)在云計(jì)算中心上的服務(wù)化和高效化,工作在分布式系統(tǒng)性能優(yōu)化領(lǐng)域。李欣慧畢業(yè)于中科院計(jì)算所,后加入IBM實(shí)驗(yàn)室-分布式計(jì)算部,主要工作在云計(jì)算和并行數(shù)據(jù)處理領(lǐng)域,為大規(guī)模數(shù)據(jù)中心提供最優(yōu)監(jiān)控和運(yùn)維工業(yè)解決方案。有9項(xiàng)專利在美國和中國注冊(cè),在國際知名會(huì)議、學(xué)術(shù)期刊上發(fā)表論文5篇。