王理++鄭春光
摘 要隨著開源大數據技術的快速發(fā)展,許多新的大數據技術的得到商用,大數據計算模型更是發(fā)展迅速。傳統(tǒng)認為,大數據具有3V特性,即Volume(海量)、Velocity(高速)和Variety(多樣),同時大數據還面臨Value(價值)和Veracity(精確)的挑戰(zhàn)。如何客觀地比較不同數據計算模型效率,即大數據測試基準的選擇,成為一個重要的研究課題。事務性能管理委員會(TPC)是目前最知名的數據管理系統(tǒng)評測基準標準化組織他們發(fā)布的多款基準測試案例,在業(yè)內具有很高的認可度。Apache開源社區(qū)針對大數據架構也發(fā)布了多款性能測試用例,如TestDFSIO、TeraSort。為了提出一種準確驗證大數據計算模型效率的方法,本文將在分析總結現(xiàn)有成果的基礎上,進一步對比現(xiàn)有的大數據測試基準,然后重點討論TPC-DS測試基準和BigBench測試。本文提出的方法,能夠準確的驗證大數據計算模型效率。
【關鍵詞】大數據 開源 基準測試 計算模型
大數據技術給傳統(tǒng)計算機技術帶來了很大的沖擊,處理問題的原理和技術都有別于傳統(tǒng)技術,尤其是互聯(lián)網時代,數據呈現(xiàn)非結構化、動態(tài)、海量、實時性強等特點,因此在獲取、存儲、處理、展示數據方面都跟以往有很大不同。某大型互聯(lián)網公司的信息化建設則是個例子,在其建設初期未考慮到數據的爆發(fā)式增長,采用傳統(tǒng)信息化架構進行建設,當業(yè)務逐年增加,原架構已經無法存儲如此多的數據,進行平臺擴容成本相當昂貴,且存在數據丟失風險,更重要的是基于海量數據無法做出實時商業(yè)分析,傳統(tǒng)計算方法在處理TB級數據時游刃有余,但是當數據量達到PB級別,系統(tǒng)經常無法做出響應。本研究基于當下流行的大數據計算框架和國際公認的測試標準,選取一個具有代表性的案例,提供一套檢測方案,該方案能夠驗證計算框架的效率,為計算框架選型提供解決之道。
1 基準案例選取
進行大數據計算模型效率檢測應當分為兩個方面,一個是Hadoop平臺的測試,這個需要TestDFSIO和TeraSort,另一個是依賴于Hadoop的計算模型測試,如Spark,Hive等,這個需要TPC-DS和BigBench,一般來說Hadoop平臺測試時必須的,計算模型的測試需要根據具體業(yè)務進行選擇,但是一般Hive和Spark都是必須的,上述兩個方面的測試基本覆蓋了大數據環(huán)境的所有指標,因此本文將針對這兩個方面,全面進行大數據平臺數據模型計算效率測試。
TPC-DS由星型、雪花型等多維數據模式組成。它包含了17張緯度表,7張事實表。在運行過程中由99個SQL查詢組成,基本涵蓋了SQL99和2003的核心部分和OLAP。該測試案例支持對大數據集的統(tǒng)計、聯(lián)機查詢、報表生成、數據挖掘等復雜應用,測試用的數據和值是有傾斜的,保持和真實數據一致性。因此TPC-DS是與真實場景極其類似的測試集,當然該測試案例的難度也很大。Hadoop等大數據分析技術也是對海量數據進行大規(guī)模的數據分析和深度挖掘,也包含交互式聯(lián)機查詢和統(tǒng)計報表類應用,同時大數據的數據質量也較低,數據分布是真實而不均勻的。因此TPC-DS成為客觀衡量多個不同Hadoop版本以及SQL on Hadoop技術的最佳測試集。
TestDFSIO、TeraSort能夠對MapReduce進行穩(wěn)定性和效率測試,這是Apache為Hadoop專門開發(fā)的測試案例,這些案例已經在業(yè)內得到認可。
選取測試案例完成后,應當進行大數據環(huán)境的搭建,基于當前業(yè)務場景需求,搭建類似或同比例的實驗環(huán)境是非常重要的,這為將來進行產業(yè)化提供方便,真實的場景和真實的基準案例,滿足這兩個條件效率研究才具有科學性。在軟件方面,選用開源的Hadoop平臺作為基本軟件,其余各發(fā)行版進行對比。
本文提供的一套軟硬件方案,能夠迅速準確的驗證數據模型計算效率。該方法通過兩套基準測試案例,綜合對比,能夠幫助客戶在計算選型上做出決策,為后續(xù)業(yè)務開展提供可靠地保障。
2 測試方法
基于上述描述,為了驗證該方法,首先需要搭建大數據環(huán)境,包括:
(1)準備千兆交換機一臺,4臺服務器構成1+3的Hadoop集群,其中一臺Namenode,3臺Datanode。
(2)部署Hadoop,HBase,Spark等計算模型。
(3)在集群上分別運行TestDFSIO、TeraSort、TPC-DS和BigBench基準測試。
(4)在3臺datanode上運行nmon,實時統(tǒng)計3臺服務器的資源消耗情況,關注CPU利用率、網絡吞吐率、硬盤IO以及磁盤空間消耗等指標,將每個測試案例的時間記錄下來。
除此之外,應當保證當測試不同計算模型效率時,不能修改集群參數例如內存大小、Map/Reduce數量等;保持原集群的原狀態(tài)例如節(jié)點個數,節(jié)點角色分配等;物理配置的一致性,例如網絡條件、存儲大小等。
分析計算模型效率有兩個維度,一個是穩(wěn)定性,在所有的測試案例中,可以分析每個計算模型能夠得出結果的案例個數,這樣可以得到該計算模型的覆蓋面。另一個是計算效率,在處理同一個案例時,每個框架的計算時間。目前大數據計算框架較多,沒有一個完美的框架,需要根據具體業(yè)務進行選擇,在穩(wěn)定性和計算效率之間選擇一個,同時也可以在一個業(yè)務上并行多個計算框架,針對不同的業(yè)務選擇不同框架,這些也是在實踐中常用的方法。
3 結論
本文基于當前流行的大數據計算框架,提出了一套完善的計算模型效率測試方法:根據業(yè)務選擇測試基準案例,定義測試方向,在此基礎上搭建硬件環(huán)境,選擇最合適的一種或幾種計算模型,這要綜合考慮穩(wěn)定性和效率。針對不同業(yè)務可以同時運行多個計算模型,甚至一個業(yè)務可以通過幾個計算模型進行服務。這套完善的選擇方法能夠使大數據環(huán)境下計算模型的效率選擇變得更加簡單準確。
作者簡介
王理(1989-),女,山東省濟南市人。碩士學位?,F(xiàn)為山東商業(yè)職業(yè)技術學院助教。主要研究方向為個性化推薦算法。
作者單位
山東商業(yè)職業(yè)技術學院 山東省濟南市 250103