


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