馮東煜,朱立谷,張雷
(中國傳媒大學 計算機學院,北京 100024)
Hadoop集群效能建模與評價
馮東煜,朱立谷,張雷
(中國傳媒大學 計算機學院,北京 100024)
隨著大數據技術的研究深入,Hadoop集群效能問題越來越引起業界的關注。如何有效地利用計算資源,使有限的資源發揮出最大的效能,成為大數據應用中一個迫切需要解決的問題。本文對Hadoop集群效能進行建模研究,建立以Hadoop集群單位時間完成的任務量與消耗能耗的比值來定義的Hadoop集群效能度量模型,并且基于該模型給出測量Hadoop集群效能所需的參數和度量方法。對不同硬件配置的Hadoop集群,選取CPU密集型和I/O密集型任務進行效能測試與評價。由測試結果可以得出機架服務器組成的Hadoop集群適合處理TB級的大規模數據,而PC組成的Hadoop集群更適合在要求不十分苛刻的場景處理10GB級及以下的中小規模數據,對生產環境中的Hadoop集群選型具有一定指導意義。
Hadoop;集群;效能;MapReduce
隨著大數據技術不斷發展和大數據應用的不斷膨脹,Hadoop作為目前最廣泛使用的大數據平臺,Hadoop集群能耗問題成為業界的關注重點如何有效地利用計算資源,使有限的資源發揮出最大的效能,提高Hadoop集群的效能以降低運行成本成為大數據應用中一個迫切需要解決的問題[1]。
但是現有的Hadoop集群設計選型都缺乏對系統構建最根本的因素——集群效能進行考慮,并與集群處理的負載建立關聯。為此,本文對Hadoop集群效能進行建模研究,提出Hadoop集群效能度量模型。在Hadoop集群效能度量模型的基礎上,對Hadoop集群進行效能測試,分析效能規律,進而對不同硬件架構的Hadoop集群效能進行評價。
根據效能的通用定義[2-4]形式,計算系統的效能是單位成本完成的任務量,本文僅考慮集群能耗作為成本,分別定義集群消耗的能量和完成的任務,稱為“能耗”和“任務量”。因此針對Hadoop集群,我們定義效能為Hadoop集群單位時間內完成的任務量與所消耗能耗的比值,即

(1)
然后分別從能耗和任務量分別進行建模。
2.1Hadoop集群能耗模型建模
首先考察“能耗”因素。本文的研究僅考慮計算機和交換機等網絡交換設備的能耗。定義Hadoop集群的能耗為:
E(T)=Ec(T)+En(T)
(2)
式中:Ec(T)為計算機的能耗,En(T)為各種網絡設備的能耗,能耗單位均為焦耳。
2.2Hadoop集群任務量模型建模
考察“任務量”因素。任意一個計算本質上包含2個部分的任務[5]:1.執行算法的運算任務;2.I/O任務。對于前者,均由CPU完成(不考慮GPU對媒體數據的處理),因此可以采用CPU的工作狀態來度量;對于后者,可以分為2種I/O操作:本地磁盤I/O和網絡I/O。
設W(T)是T時間內的任務量:
W(T)=Wc(T)⊕1[Wd(T)⊕2Wn(T)]
(3)
式中:Wc(T)為CPU的運算量,Wd(T)為磁盤讀寫運算量,Wn(T)為網絡收發運算量,符號⊕1和⊕2表示聚集函數。下面研究的量綱統一方法。Wc(T)可以用“執行的浮點運算量”來度量。對于任意時刻t,可得Wc(T)的計算公式:
Wc(T)=Cf(t)×Cu(t)×Cc×Cfn
(4)
式中:Cf(t)為t時刻的CPU的頻率,Cu(t)為t時刻的CPU使用率,Cc為CPU核心數,Cfn(t)為每周期浮點運算次數。CPU每次進行浮點運算的對象都是2個長度為機器字長的值。式(4)可以寫成:
Wc(T)=Cf(t)×Cu(t)×Cc×Cfn×2Cmw
(5)
式中:Cmw為機器字長。Wc(T)的單位為:
1024M×cycles/sec×1/cycles×bit
=1024MB/8=27MB
于是,將CPU運算量的量綱統一到了MB,與網絡I/O和磁盤I/O相同。
2.3Hadoop集群效能模型
定義 效能在T時間內Hadoop集群的效能η(T)定義為完成的任務量W(T)與消耗的能量E(T)的比值:

E(T)≠0
(6)
對于Hadoop集群,設存在N個節點,記為ci(1≤i≤N),存在M個網絡設備,記為nj(1≤j≤M)。
3.1Hadoop集群能耗
由2.1的討論,Hadoop集群的能耗分為節點能耗和網絡設備能耗兩部分。
在Hadoop集群中 ,節點ci在t時刻的功率為pci(t),則

(7)
網絡設備nj在t時刻的功率為pnj(t),則

(8)
測量Ec(T)的方法有很多種。所有計算機都有額定功率,但實際功率是動態變化的,很難找到pci(t)和pnj(t)的數學表達式,并按照式(7)和(8)計算能耗Ec(T)和En(T)。因此我們采用電量計測量時間內Hadoop集群所有設備的能耗總和∑E(T),作為(2)式的E(T)。
3.2Hadoop集群任務量
下面介紹任務量Wc(T)、Wd(T)和Wn(T)的數量級統一和測量方法。Wd(T)和Wn(T)的數量級一致,可以令A⊕2B=A+B。當采用式(5)將CPU的頻率單位GHz轉換成存儲大小單位MB時,轉換算法使Wc(T)遠大于Wd(T)+Wn(T)。 若⊕1為簡單的相加,則會導致Wc(T)在W(T)的計算中起決定作用,Wd(T)和Wn(T)的影響被縮小。因此,式(3)中的聚集運算不能采用簡單加法。為了使A與B保持在同一數量級,定義A⊕1B=ΦA+B,其中Φ為調整系數。式(4)可以改寫為:
W(T)=ΦWc(T)+[Wd(T)+Wn(T)]
(9)
為確保Wc(T)與Wd(T)+Wn(T)在W(T)中所占的比重一致,引入Φ為計算機系統的調整系數,Φ=TIO/TCPU。其中,TIO表示I/O最大吞吐量,包括磁盤和網絡2部分;TCPU表示CPU最大吞吐量。
表1定義了t時刻第i個節點(1≤i≤N)的若干特征屬性來計算Hadoop集群效能。

表1 效能計算特征屬性
基于上述特征值,定義Wc(T)、Wd(T)和Wn(T)的計算方法如下:

(10)

(11)


(12)
3.3Hadoop集群效能度量公式
綜合(4)~(12)式,我們定義一個N個計算節點M個網絡交換設備的Hadoop集群的效能:




為驗證Hadoop集群度量模型,總結Hadoop集群效能規律,在相同規模的機架式服務器和PC機組成的Hadoop集群進行效能測試。
4.1 測試環境
機架式服務器采用HPDL380服務器,搭載IntelXeonE5645CPU,2.4GHz6核處理器。PC機采用聯想R4900d主機,搭載Inteli3 3240處理器,3.4GHz雙核處理器。兩個集群均為8節點,通過H3C交換機互聯,集群部署Ganglia監控系統,所有服務器和網絡設備接入同一電源,使用電量計測量總能耗。具體測試環境的拓撲圖如圖1所示。

圖1 Hadoop集群效能測試環境拓撲
4.2Hadoop集群效能指標測試與計算
本文采用CPU密集型和I/O密集型任務作為測試用例。CPU密集型主要體現在任務特點以大量計算作業為主,I/O密集型體現在任務需要大量的數據讀寫操作,兩者是Hadoop集群應用領域中最常見的計算類型[6]。本文利用Wordcount和Sort用例分別代表兩種類型的操作進行測試,根據上節給出的效能度量公式,記錄集群的各項性能參數及能耗。測試樣例全部采用MapReduce提供的Benchmark基準測試集,任務負載分別取100MB、1GB、10GB、100GB、1TB。利用Ganglia集群監控軟件對CPU頻率、使用率、磁盤和網絡的吞吐率進行測量。
為了對Hadoop集群的效能進行度量,首先需要確定每個集群的對應的系數Φ。
由于集群是同構的,每個節點的Φ和特征屬性相同。實驗環境中所用的網絡帶寬為1000Mb/s,理論最大峰值傳輸速率為125MB/s。硬盤接口類型為SerialATA3.0,數據傳輸率理論可以達到600MB/s。因此,TIO=725MB/s。由式(4)計算可得,TServer-CPU=2.4×100%×6×2×64×27MB/s=235929.6MB/s(Cf=2.40GHz,Cu=100%,Cc=6,Cfn=2,Cmw=64bit)
TPC-CPU=1.8×100%×2×1×2×64×27MB/s=58982.4MB/s(Cf=1.80GHz,Cu=100%,Cc=2,Cfn=1,Cmw=64bit)
因此,ΦServer=1.55×10-3,ΦPC=1.22×10-2。
將測試指標帶入Hadoop集群度量公式,得到機架服務器集群和PC集群的CPU密集型和I/O密集型任務效能如表2所示。

表2 服務器、PC Hadoop集群效能測試結果

續表
4.3 Hadoop集群效能測試結果評價
在對機架服務器和PC組成的Hadoop集群效能測試基礎上,我們綜合對比分析兩種Hadoop集群在運行相同任務時的效能。同時考慮到任務執行時間和能耗是用戶直接關心的兩個度量,因此我們也引入相同條件下的執行時間和能耗,將兩種架構Hadoop的效能、執行時間、能耗分別繪制在同一坐標系中,如圖2、圖3、圖4所示。

圖2 效能對比

圖3 執行時間對比

圖4 能耗對比
如圖3所示,機架服務器組成的Hadoop集群在TB級負載內效能指標平穩,并在數據量達到TB級以后效能呈上升趨勢。PC組成的Hadoop集群在10GB左右負載時效能達到極值,負載繼續增大時,效能呈下降趨勢。如圖4反觀兩種架構的能耗與執行時間關系,兩種架構的能耗都和其任務執行時間呈正相關。PC集群的任務執行時間總大于同樣負載的服務器集群,在負載小于10GB時,二者差距200s內,即不超過4分鐘,但是兩者時間差距的程度在負載大于10GB后,呈不斷增大的趨勢,且差距越來越明顯,可達到1000s以上,即15分鐘以上。顯然PC組成的Hadoop集群執行大于10GB負載的任務執行時間相比通用架構Hadoop集群是用戶不能忍受的。
綜上,我們可以得出,機架服務器組成的Hadoop集群適合處理TB級的大規模數據。而PC組成的Hadoop集群更適合在響應時間要求不十分苛刻的應用環境中,處理10GB級及以下的中小規模數據。測試結論也體現出Hadoop采用廉價機器搭建服務器集群的思想。
隨著大數據技術不斷發展和大數據應用的不斷膨脹,Hadoop集群能耗問題成了各大公司和研究機構重點關注的問題。因此,在當前和未來很長一段時間內,如何有效地利用計算資源,使有限的資源發揮出最大的效能,提高Hadoop集群的效能以降低運行成本成為大數據應用中一個迫切需要解決的問題[7]。
但是現有的Hadoop集群設計選型都缺乏對系統構建最根本的因素——集群效能進行考慮,并與集群處理的數據量建立關聯。為此,本文對Hadoop集群效能進行建模研究,提出Hadoop集群效能度量模型,并對不同節點性能的集群效能進行對比測試,總結出其適合處理的數據量級,對生產環境中的Hadoop集群選型具有一定指導意義。
[1]程學旗,靳小龍,王元卓.大數據系統和分析技術綜述[J].軟件學報,2014(9):1889-1908.
[2]H W Meuer.The Mannheim Supercomputer Statisties 1986-1992[R].TOP500 Report 1993,University of Mannheim,1994,1-15.
[3]KUMAR K,LU Y H.Cloud computing for mobile users:can offloading computation save energy[J].IEEE Computer,2010,43(4):51-56.
[4]ABDELSALAM H S,MALY K,MUKKAMALA R.Analysis of energy efficien in clouds[J].Future Computing,Service Computation,Cognitive,Adaptive, Content,Patterns Computation World,Norfolk:IEEE,2009,416-421.
[5]宋杰,李甜甜,閆振興.一種云計算環境下的能效模型和度量方法[J].軟件學報,2012,23(2):200-214.
[6]D Jiang,B C Ooi,L Shi.The Performance of Mapreduce:An in-Depth Study[J].VLDB Endow,2010,1(3):472-483.
[7]The Apache Software Foundation.Welcome to Hadoop[OL].2013:http://hadoop.apache.org/.
(責任編輯:宋金寶,昝小娜)
Hadoop Cluster Productivity Modeling and Evaluation
FENG Dong-yu,ZHU Li-gu,ZHANG Lei
(Computer School,Communication University of China,Beijing 100024,China)
With the deep research on big data technology,the issue of Hadoop cluster productivity causes more and more concern in the industry.It is one of the most important issues of the big data application about how to effectively utilize the computing resource,making full use of the limited resource with the most efficiency.In this paper,the mathematical models have been established for Hadoop cluster productivity,defining the productivity of Hadoop cluster as the ratio of the task size and energy consumption per unit time,and proposed the measurement parameter and methods of Hadoop cluster productivity.For Hadoop clusters with different hardware configuration,experiments.The productivity of CPU intensive and I/O intensive computing was measured and evaluated based on the measurement model.It concluded from the measurement result that Hadoop cluster with IBM rack servers is suitable for processing terabytes of data,while Hadoop cluster of PCs is more suitable for processing 10 gibabytes of data and under in the condition that response time requirements is not harsh.This research in this paper is instructive for hardware selection of Hadoop cluster in production environment.
Hadoop;cluster;productivity;MapReduce
2016-09-11
國家自然科學基金項目(61730063)
馮東煜(1989-),男(漢族),遼寧錦州人,中國傳媒大學計算機學院博士研究生,E-mail:fengdy1225@163.com.
TP
A
1673-4793(2017)01-0022-05