摘 要:Hadoop已經(jīng)成為大數(shù)據(jù)平臺的事實標準,當(dāng)用戶要求它成為全棧平臺時,MapReduce為批處理而設(shè)計的局限日益顯現(xiàn)。文中將SSD引入大數(shù)據(jù)的內(nèi)存緩存存儲解決方案,闡述了SSD和HDD的混合存儲架構(gòu);同時,結(jié)合高效的計算模型Spark等優(yōu)化技術(shù),設(shè)計了一種基于SSD的高性能Hadoop系統(tǒng),分別有效地解決大數(shù)據(jù)計算系統(tǒng)的性能問題和存儲空間問題,實驗性能評測顯示取得了顯著效果。
關(guān)鍵詞:大數(shù)據(jù) Hadoop Spark SSD
中圖分類號:TP311 文獻標識碼:A 文章編號:1672-3791(2015)10(b)-0000-00
0引言
隨著信息數(shù)據(jù)化的發(fā)展,企業(yè)數(shù)據(jù)正在迅速增長,從GB級別跨入到TB和PB級別。龐大而復(fù)雜的數(shù)據(jù)需要與傳統(tǒng)截然不同的處理方式,Hadoop[2]技術(shù)成為大數(shù)據(jù)事實上的標準。而Hadoop技術(shù)最大的瓶頸之一是MapReduce預(yù)算過程中磁盤I/O的瓶頸,導(dǎo)致MapReduce不適合迭代式(Iterative)和交互式(Interactive)應(yīng)用。
本文針對這個問題,提出一個新的高性能Hadoop系統(tǒng)的設(shè)計和實現(xiàn),內(nèi)容包括:采用基于內(nèi)存計算的大數(shù)據(jù)處理框架Spark來代替MapReduce作為計算引擎,提高計算速度。引入SSD代替內(nèi)存作緩存,讓SSD和內(nèi)存、HDD(Hard Disk Drive,機械硬盤)共同組成混合存儲體系。
1混合存儲模型開始引入SSD
近年來,固態(tài)硬盤(Solid State Driver, SSD)已經(jīng)作為一種可以持久化保存數(shù)據(jù)的存儲設(shè)備逐步被廣泛使用。SSD具有讀寫速度快(相對于傳統(tǒng)磁盤,HDD)、價格低(相對于內(nèi)存)的特點。很多研究機構(gòu)和公司針對SDD和HDD的混合存儲模型已經(jīng)開展過大量研究和優(yōu)化,取得了不錯的成果。陳志廣等人[5]提出一種高性能的混合存儲方案,其主要想法是SSD響應(yīng)所有I/O請求,獲得較高的性能,另外用多塊磁盤協(xié)作備份SSD數(shù)據(jù),解決單塊SSD上的突發(fā)寫問題,并提高可靠性。
Hadoop系統(tǒng)在2.6.0版本中引入混合存儲層的概念[7-8],開始支持基于SSD的混合存儲體系,實現(xiàn)更好的性能擴展。因此,基于SSD的混合存儲模型會逐漸成為Hadoop系統(tǒng)的重要基礎(chǔ)。
2高性能Hadoop系統(tǒng)基本框架
現(xiàn)階段Hadoop系統(tǒng)主要基于MapReduce計算模型,其所有操作都要轉(zhuǎn)化成Map、Shuffle和Reduce等核心階段,即將對數(shù)據(jù)集的計算分發(fā)到每個節(jié)點并將中間結(jié)果進行匯總,中間結(jié)果需要向HDFS文件系統(tǒng)讀寫,同時計算模型數(shù)據(jù)需要網(wǎng)絡(luò)傳輸,加上磁盤I/O存在瓶頸,所以現(xiàn)階段的Hadoop系統(tǒng)在處理迭代式、交互式等復(fù)雜運算方面存在不足。
本文提出的高性能Hadoop系統(tǒng)是從存儲和計算兩大核心模型出發(fā),建立一個統(tǒng)一的、高性能的大數(shù)據(jù)計算平臺。核心計算模型采用Spark[15],并引入SSD作為Spark計算的緩存層來代替內(nèi)存,既可以加快I/O吞吐,同時解決內(nèi)存空間不足以應(yīng)對大數(shù)據(jù)量的局限。
圖1 基于SSD的高性能Hadoop系統(tǒng)框架圖
基于SSD的混合存儲模型和Spark計算框架的Hadoop系統(tǒng)可根據(jù)數(shù)據(jù)的量級(如圖2)來合理設(shè)置存儲方案,實現(xiàn)高性能的處理能力。
圖2 混合存儲量級設(shè)置方案
3性能評測
為了比較HDD、SSD和內(nèi)存的性能,我們采用TPC-DS國際標準測試集進行了一系列測試,數(shù)據(jù)量為300GB。測試平臺是一個4臺服務(wù)器的集群,每臺服務(wù)器的硬件配置為:Intel? Xeon? Processor E5-2620、256G內(nèi)存、600G的SSD存儲,以及8T的SATA硬盤。
測試TPC-DS中SQL語句運行所花時間對比的結(jié)果見表3。我們能看到,SSD和內(nèi)存的性能都遠遠好于機械硬盤。而SSD相比內(nèi)存,其性能最多相差在20%以內(nèi),平均差10%以內(nèi)。
表3 DISK/RAM/SSD測試結(jié)果比較
測試DiskRAMSSD
計數(shù)118.82s7.3s7.56s
查找128.33s1.87s2.04s
過濾121.26s9.87s10.61s
關(guān)聯(lián)130.03s5.04s5.96s
維度
統(tǒng)計226.06s126.80s132.89s
隱式
關(guān)聯(lián)259.41s121.27s137.79s
排序227.39s131.44s140.58s
窗口
函數(shù)172.54s57.69s60.88s
4結(jié)束語
本文從基于SSD的混合存儲體系和Spark高性能計算模型等方面進行闡述和分析,提出了一種高性能Hadoop的設(shè)計思路和實踐,同時也發(fā)現(xiàn)今后的研究空間可側(cè)重以下方面:1)通用性、穩(wěn)定性更高的混合存儲模型的實現(xiàn)和優(yōu)化。Hadoop系統(tǒng)已經(jīng)開始支持混合存儲模型,未來SSD如何合理有效的應(yīng)用將是一個重要的研究方向。2)新一代Spark計算模型的優(yōu)化。將內(nèi)存計算轉(zhuǎn)移到SSD計算,提升大數(shù)據(jù)處理平臺的硬件資源的性價比和利用率,并結(jié)合大數(shù)據(jù)自身特點,構(gòu)建統(tǒng)一高效的計算模型。
參考文獻
[1] Fabian Suchane, Gerhard Weikum. Knowledge harvesting in the big data era[C]//Proc of the 40th ACM SIGMOD Int Conf on Management of Data. New York: ACM, 2013: 933-938
[2] Apache Hadoop[EB/OL]. [2015-02-07]. http://hadoop.apache.org
[3] HDFS Architecture[EB/OL]. [2015-02-07]. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
[4] SSD White Paper[EB/OL]. [2015-02-07]. http://www.samsung.com/global/business/semiconductor/minisite/SSD/global/html/whitepaper/whitepaper.html
[5] 陳志廣,肖儂,劉芳,等.一種用磁盤備份SSD的高性能可靠存儲系統(tǒng)[J].計算機研究與發(fā)展,2013,50(1):80-89
[6] 楊濮源,金培權(quán),岳麗華.一種時間敏感的SSD和HDD高效混合存儲模型[J].計算機學(xué)報,2012,35(11):2294-2305
[7] Apache Hadoop[EB/OL]. [2015-02-07]. http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
[8] Arpit Agarwal. Heterogeneous Storages in HDFS[EB/OL]. (2013-11-20)[2015-02-07] https://issues.apache.org/jira/secure/attachment/12615761/20131125-HeterogeneousStorage.pdf