Hadoop虛擬化的性能對比和調優經驗
虛擬化為Hadoop注入了前所未有的活力,從IT生產管理的角度,表現為以下幾點:
·Hadoop和其他消耗不同類型資源的應用一起部署共享數據中心可以提高總體資源利用率;
·靈活的虛擬機操作使得用戶可以動態的根據數據中心資源創建、擴展自己的Hadoop集群,也可以縮小當前集群、釋放資源支持其他應用如果需要;
·通過與虛擬化架構提供的HA、FT集成,避免了傳統Hadoop集群中的單點失敗,再加之Hadoop本身的數據可靠性,為企業大數據應用提供了可靠保證。
基於這些原因,vSphere Big Data Extensions(BDE)為用戶在虛擬化環境中靈活的部署和管理Hadoop集群提供了有效的支持。除卻這些優勢,虛擬化是否會傷害Hadoop運行的性能呢?為此,我們在同等規模上做了虛擬化部署和物理部署的Hadoop集群的性能對比和優化,實驗表明虛擬化Hadoop集群可以很好地支持生產環境。
虛擬化環境和物理環境的性能對比
圖1顯示了性能調優試驗的部署樣式,一台物理伺服器上只部署一台虛擬機,Tasktracker和Datanode一起跑在同一個節點中。因為每個虛擬節點可以使用全部的伺服器資源,方便進行虛擬化和傳統物理環境部署的Hadoop做性能對比和分析。試驗結果在圖2中顯示,虛擬化Hadoop相對於物理環境的性能對比幾乎是持平的。
圖1:性能對比部署
圖2:Apache Hadoop 1.2物理部署和虛擬化部署的性能對比
圖3顯示了更推薦生產環境使用的部署拓撲,一台物理伺服器上部署多台虛擬節點。如圖2所示,這種部署將增加資源利用率從而得到更高的性能。
圖3:多虛擬機的部署
同時,我們把這些實驗經驗內嵌到vSphere BDE部署的Hadoop集群系統配置當中,屏蔽了性能優化的複雜性。雖然不同的數據中心設置和集群配置可能帶來不同的表現,這裡按照創建、配置、擴展Hadoop集群的順序跟大家分享一些通用的經驗:
Hadoop虛擬化的調優經驗:
(1)計劃初始規模:集群表現於跟數據中心基礎設施和配置密切相關,建議用戶在一開始對環境表現難以預測的時候,先建立小規模集群,比如5台或者6台伺服器,部署Hadoop,然後運行標準Hadoop基準了解自己數據中心的特點。然後根據需要逐步添加伺服器和存儲等資源。
(2)選擇伺服器:CPU建議不要少於2 * Quad-core並且激活HT(Hyper-Threading);為每個計算內核配置至少4G內存,並且預留6%的內存為虛擬化的有效運行。Hadoop性能對I/O很敏感,建議每台伺服器配置多塊本地存儲而不建議配置少塊大容量的硬碟。考慮任務調度的代價,對於每個計算內核不建議配置超過2塊本地存儲。為高性能考慮,推薦使用10G網卡。考慮為主節點伺服器(運行namenode、Jobtracker)配置雙電源以提高可靠性。
(3)虛擬化配置:本地存儲盡量避免配置成RAID,為每一個物理盤創建一個datastore虛擬化網路配置時為了可靠性和網路傳輸效率,隔離管理網路和Hadoop集群網路。如圖4所示:
圖4:虛擬化網路配置
(4)系統設置:BDE將會自動配置根據實驗經驗取得的虛擬磁碟和操作系統參數,向用戶屏蔽性能優化的具體細節。建議對性能敏感的用戶替換默認模板採用CentOS6*,因為Linux 6.* 內核的THP(TransparentHuge Page)和EPT(Extended PageTables,Intel處理器)可以一起幫助虛擬化性能。
(5)Hadoop配置: BDE將會自動產生並配置hadoop配置文件(主要在map-site.xml,core-site.xml,和 hdfs-site.xml內),包括塊大小(blocksize),會話管理和日誌功能。但是有一些相關於MapReduce任務的參數,包括mapred.reduce.parallel.copies,io.sort.mb,io.sort.factor,io.sort.record.percent,和tasktracker.http.thread,需要根據不同負載具體設置。
(5)擴展建議:如果用戶觀察集群中CPU的利用率經常超過80%,建議加入新的節點。另外單個存貯節點的容量不建議超過24TB,否則一旦節點失敗,數據備份拷貝容易造成數據擁塞。擴展可以按照小規模集群上運行性能基準經驗和資源使用情況進行。
---------------------
作者:weixin_34289454
原文:https://blog.csdn.net/weixin_34289454/article/details/85027890
※HAProxy、Keepalived 在 Ocatvia 的應用實現與分析
※Docker Harbor+Keepalived+LVS+共享存儲高可用架構
TAG:程序員小新人學習 |