陳 麗,王 銳,胡 剛
(1.廣東交通職業(yè)技術(shù)學院,廣東 廣州 510650;2.中國移動通信集團廣東有限公司,廣東 廣州 510623;3.星環(huán)信息科技(上海)有限公司,上海 200233)
一種基于SSD的高性能Hadoop系統(tǒng)的設計與應用
陳 麗1,王 銳2,胡 剛3
(1.廣東交通職業(yè)技術(shù)學院,廣東 廣州 510650;2.中國移動通信集團廣東有限公司,廣東 廣州 510623;3.星環(huán)信息科技(上海)有限公司,上海 200233)
在大數(shù)據(jù)平臺中,隨第一代Hadoop出現(xiàn)的基于磁盤的批處理計算框架MapReduce的局限日益顯現(xiàn):數(shù)據(jù)讀入和中間結(jié)果數(shù)據(jù)均依賴于大量磁盤I/O,性能有限。基于內(nèi)存計算的Spark成為當前重點,對比MapReduce性能可提升10-100倍,但內(nèi)存使用的成本依舊高昂。采用超高速且相對廉價的SSD作為大數(shù)據(jù)的緩存解決方案,闡述了SSD和HDD的混合存儲架構(gòu);同時,結(jié)合高效的Spark計算引擎和行列混合式文件結(jié)構(gòu)等優(yōu)化技術(shù),設計了一種基于SSD的高性能Hadoop系統(tǒng),能有效地解決大數(shù)據(jù)計算系統(tǒng)的性能問題和存儲空間問題,實驗結(jié)果顯示取得數(shù)倍性能提升。
大數(shù)據(jù);Hadoop;Spark;SSD;行列混合式存儲
數(shù)據(jù)作為企業(yè)最重要的資產(chǎn),一直以來都是企業(yè)應用、技術(shù)、架構(gòu)和服務等創(chuàng)新的源泉。隨著信息數(shù)據(jù)化和互聯(lián)網(wǎng)技術(shù)的發(fā)展,企業(yè)數(shù)據(jù)正在迅速增長,從GB級別跨入到TB和PB級別。這些數(shù)據(jù)的特征可以概括為“4個V”:體量大(volume), 格式多樣(variety),更新速度快(velocity)和蘊含巨大的商業(yè)價值(value)。擁有“4V”特點的數(shù)據(jù)以及數(shù)據(jù)的處理方式被賦予“大數(shù)據(jù)(big data)”[1]這個名字,正在帶來IT產(chǎn)業(yè)的重大技術(shù)變革。
在這場變革中,快速占據(jù)主流的技術(shù)是Hadoop[2]分布式系統(tǒng)架構(gòu)。Hadoop最核心的設計是分布式文件系統(tǒng)HDFS[3](Hadoop Distributed File System)和MapReduce[4]計算模型。HDFS被設計部署在價格低廉的硬件上,依靠數(shù)據(jù)冗余達到高度容錯,提供高吞吐量的數(shù)據(jù)訪問,適合批量處理大量數(shù)據(jù)。MapReduce將復雜的計算過程抽象為多組map和reduce步驟,map和reduce各由多個mapper和reducer函數(shù)執(zhí)行,將不同mapper和reducer分配至不同的計算節(jié)點,實現(xiàn)了在大型計算集群上的高效分布式計算處理。Hadoop還具有高擴展性,即計算機集群可以通過添加計算節(jié)點無限增加計算能力。
當用戶要求Hadoop作為一個全棧平臺,同時兼容批處理、交互迭代式查詢和流處理時,Hadoop架構(gòu)的局限性日益顯現(xiàn)。最大的瓶頸之一是MapReduce的大量中間結(jié)果需要向磁盤進行讀寫,當計算量大時,磁盤I/O的瓶頸導致MapReduce不適合迭代式(Iterative)和交互式(Interactive)應用。
本文針對這個問題,提出一個新的高性能Hadoop系統(tǒng)的設計和實現(xiàn),內(nèi)容包括:采用基于內(nèi)存計算的大數(shù)據(jù)處理框架Spark來代替MapReduce作為計算引擎,提高計算速度。引入SSD代替內(nèi)存作緩存,讓SSD和內(nèi)存、HDD(Hard Disk Drive,機械硬盤)共同組成混合存儲體系;針對SSD硬件特性而優(yōu)化的存儲格式,采用行列混合式文件結(jié)構(gòu)ORCFile,進一步提升存儲空間利用率和處理效率。
近年來,固態(tài)硬盤(Solid State Driver, SSD)已經(jīng)作為一種可以持久化保存數(shù)據(jù)的存儲設備逐步被廣泛使用。SSD有以下幾個特點:1)性能方面,SSD因為不需要像HDD一樣尋道,有遠高于機械硬盤的隨機讀速度,寫速度也同樣明顯高于HDD;2)價格方面,SSD的價格要高于HDD,但遠低于內(nèi)存,并且每存儲單位的價格還在下降。實踐證明SSD只有內(nèi)存價格的十分之一,但計算性能是內(nèi)存的90%;3)使用壽命方面,市場上主流的NAND型閃存SSD具有寫前擦除的特點,每塊閃存芯片的擦除次數(shù)是有限的,目前已經(jīng)有通過SSD磨損均衡的研究成果[5]來提升SSD的使用壽命,而且從實際使用經(jīng)驗值來看,如果每天完全讀寫3次,一般可使用4年,基本上也是IT硬件產(chǎn)品的更新周期。
表1[6]列出了SSD和HDD的一些平均關(guān)鍵指標對比(具體值會依據(jù)品牌和型號有微小不同)。SSD相對HDD有非常高的I/O性能,訪問速度快100-120倍。因此引入SSD到現(xiàn)有存儲體系中是非常有價值的,利用兩者優(yōu)點來設計混合存儲系統(tǒng)是當前存儲系統(tǒng)的研究熱點。
Table1 Performance Comparison of SSD and HDD表1 SSD和HDD性能對比
很多研究機構(gòu)和公司針對SDD和HDD的混合存儲模型已經(jīng)開展過大量研究和優(yōu)化,取得了不錯的成果。陳志廣等人[7]提出一種高性能的混合存儲方案,其主要想法是SSD響應所有I/O請求,獲得較高的性能,另外用多塊磁盤協(xié)作備份SSD數(shù)據(jù),解決單塊SSD上的突發(fā)寫問題,并提高可靠性。楊濮源等人[8]針對SSD和HDD混合存儲提出了一個時間敏感的模型,即結(jié)合數(shù)據(jù)頁的訪問次數(shù)以及訪問熱度實現(xiàn)分類,將讀傾向負載的hot頁面分配到SSD存儲,寫傾向負載的頁面或者cold頁面分配到HDD存儲,從而整體上取得顯著的性能提升。Facebook公司利用SSD的特性,設計了一個混合存儲系統(tǒng)flashcache[9],利用SSD作為加速I/O引擎的核心,形成了一個通用的塊級混合存儲軟件方案。
另一方面,因為SSD良好的隨機讀和順序?qū)懶阅?,可將SSD設計為擴展緩存,縮短對磁盤的讀寫訪問時間,進而提高整個系統(tǒng)的性能。Taeho Kgil等人[10]提出了在內(nèi)存和磁盤之間增加由閃存構(gòu)成的緩存層,從而減少對磁盤的訪問,進而減少能耗。Biplob Debnath等人[11]設計固態(tài)硬盤作為磁盤的寫緩存,為微軟多人在線游戲系統(tǒng)和數(shù)據(jù)去重系統(tǒng)大幅提高了性能。針對MapReduce 處理框架,Seok-Hoon Kang等人[12]提出引入SSD提高系統(tǒng)性能。
Hadoop系統(tǒng)在2.6.0版本中引入混合存儲層(Heterogeneous Storage Tiers)的概念[13-14],開始支持基于SSD的混合存儲體系,實現(xiàn)更好的性能擴展。因此,基于SSD的混合存儲模型會逐漸成為Hadoop系統(tǒng)的重要基礎(chǔ)。
現(xiàn)階段Hadoop系統(tǒng)主要基于MapReduce計算模型,其所有操作都要轉(zhuǎn)化成Map、Shuffle和Reduce等核心階段,即將對數(shù)據(jù)集的計算分發(fā)到每個節(jié)點并將中間結(jié)果進行匯總,中間結(jié)果需要向HDFS文件系統(tǒng)讀寫,同時計算模型數(shù)據(jù)需要網(wǎng)絡傳輸,加上磁盤I/O存在瓶頸,所以現(xiàn)階段的Hadoop系統(tǒng)在處理迭代式、交互式等復雜運算方面存在不足。
本文提出的高性能Hadoop系統(tǒng)是從計算和存儲兩大核心模型出發(fā),建立一個統(tǒng)一的、高性能的大數(shù)據(jù)計算平臺(如圖1)。核心計算模型采用Spark[15]:支持數(shù)據(jù)緩存在內(nèi)存、通用DAG執(zhí)行和調(diào)度、延遲計算和高效優(yōu)化等優(yōu)點,具體有極低的調(diào)度和啟動開銷。核心存儲模型采用行列混合式文件結(jié)構(gòu):支持更高效的數(shù)據(jù)壓縮和更快速的數(shù)據(jù)加載。
Fig.1 High-Performance Hadoop architecture Based on SSD圖1 基于SSD的高性能Hadoop系統(tǒng)框架圖
2.1 計算模型-基于混合存儲的Spark
Spark是發(fā)源于UC Berkeley AMP lab的集群計算平臺。它立足于內(nèi)存計算,從多迭代批量處理出發(fā),提供一體化的解決方案,將MapReduce、Streaming、SQL、Machine Learning、Graph Processing等模型統(tǒng)一到一個平臺下,成為全新的、高性能的分布式計算引擎。但大數(shù)據(jù)動輒TB級別,內(nèi)存基本在GB級別,所以引入SSD作為Spark計算的緩存層來代替內(nèi)存,既可以加快I/O吞吐,同時解決內(nèi)存空間不足以應對大數(shù)據(jù)量的局限;SSD軟件存儲層采用行列混合式文件結(jié)構(gòu),充分發(fā)揮SSD硬件特性,提升處理性能和壓縮空間。
Spark創(chuàng)造性提出彈性分布式數(shù)據(jù)集(Resilient Distributed Datasets, RDD)[16-17]的概念。RDD作為Spark最核心的內(nèi)容,可以緩存到內(nèi)存中,每次對RDD數(shù)據(jù)集操作之后的結(jié)果,都可以存放到內(nèi)存中,下一個操作可以直接從內(nèi)存中輸入,省去了MapReduce大量的磁盤讀寫操作,這對于迭代式運算、交互式運算的效率提升非常大。
同時,RDD的基本操作組成有向無環(huán)圖(Directed Acyclic Graph, DAG)[18]作業(yè)任務。分析DAG中任務之間的依賴性,可以把相鄰的任務合并,從而減少大量中間結(jié)果的輸出,極大減少了I/O,使復雜數(shù)據(jù)的分析任務更高效。通過DAG的執(zhí)行和調(diào)度,消除了不必要的步驟,從而支持了延遲計算和高效優(yōu)化,測試結(jié)果顯示Spark平均比Hadoop快10至100倍[15]。
Spark支持內(nèi)存/SSD混合分布式存儲,根據(jù)數(shù)據(jù)需求,用戶可以選擇不同的級別的存儲來緩存RDD。目前SSD相對于HDD有10倍以上的性能提升,而內(nèi)存相較于SSD有3-4倍的提升。因此SSD的性能已經(jīng)開始向內(nèi)存接近,同時價格也在迅速下降,因此用SSD替代大內(nèi)存作為緩存是一種高性價比的方案,有以下優(yōu)點:
1)可以處理大數(shù)據(jù)。單臺機器處理數(shù)據(jù)過大,Spark常出現(xiàn)內(nèi)存不夠或者無法運行出結(jié)果。而采用SSD替代大容量昂貴的內(nèi)存作為緩存,一方面可以提供跟純內(nèi)存緩存接近的性能,另一方面也可處理更大的數(shù)據(jù)。
2)性能更加穩(wěn)定。原有方案由于大量數(shù)據(jù)被緩存在內(nèi)存中,Java垃圾回收緩慢的現(xiàn)象嚴重,導致Spark的性能不穩(wěn)定,在復雜場景SQL的性能甚至不如現(xiàn)有的MapReduce。因此,采用SSD存儲作為緩存,可以大幅減少GC的影響,提升性能穩(wěn)定性。
因此,基于SSD的混合存儲模型和Spark計算框架的Hadoop系統(tǒng)可根據(jù)數(shù)據(jù)的量級(如圖2)和應用數(shù)據(jù)使用策略來合理設置存儲方案,實現(xiàn)高性能的處理能力。
Fig.2 Heterogeneous Storage Magnitude-setting Schema圖2 混合存儲量級設置方案
總結(jié)上文,Spark是一個輕量級的調(diào)度框架和多線程計算模型,提供緩存機制來支持需要反復迭代計算或者多次數(shù)據(jù)共享,減少數(shù)據(jù)讀取的IO開銷,同時兼容Hadoop存儲API,可以讀寫存儲在HDFS或HBase上的數(shù)據(jù),在Spark基礎(chǔ)上可以實現(xiàn)批處理、交互式分析、迭代式機器學習、流處理。因此Spark是一個用途廣泛的計算引擎,并有望在未來取代MapReduce的地位。
2.2 存儲模型-行列混合式文件結(jié)構(gòu)
強大的計算引擎搭配針對分布式計算設計的文件存儲結(jié)構(gòu)可以獲得更高的性能?;诨旌系腟park在數(shù)據(jù)持久化時采用行列混合式文件結(jié)構(gòu),可以獲得更大數(shù)據(jù)壓縮比,讓SSD可以支撐更大數(shù)據(jù)體量,從而整個集群獲得更高性能。
傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)中,主要有三種數(shù)據(jù)存儲結(jié)構(gòu)[19]:
1)水平的行存儲結(jié)構(gòu)(horizontal row-store structure):數(shù)據(jù)按行存儲,同一行中包括所有的列的數(shù)據(jù)存在同一個物理位置,在HDFS中則存在同一個HDFS塊上。其優(yōu)點在于快速數(shù)據(jù)加載和動態(tài)查詢的高適應能力。行存儲也存在缺點,例如查詢僅僅針對多列表中的少數(shù)幾列,但行存儲的文件必須被整行掃描,而不能跳過不必要的列讀取。另外,壓縮文件時要同時壓縮不同列,由于不同的列數(shù)據(jù)類型不同,壓縮比不高。
2)垂直的列存儲結(jié)構(gòu)(vertical column-store structure):數(shù)據(jù)按列存儲,也就是同一列的數(shù)據(jù)存在同一個物理位置。列存儲在執(zhí)行查詢時可以跳過不必要的列,而且同列的數(shù)據(jù)類型一致,壓縮數(shù)據(jù)能達到比較高的壓縮比。但也存在相應缺點,比如列存儲不能保證一個記錄的所有域在同一個集群節(jié)點上,記錄的重構(gòu)將導致通過集群節(jié)點網(wǎng)絡的大量數(shù)據(jù)傳輸,不適合高負載動態(tài)模式。
3)混合的 PAX 存儲結(jié)構(gòu)(hybrid PAX store structure): 行列混合存儲方式,結(jié)合了前兩者的優(yōu)點并且可以提升CPU緩存利用率,但并不能直接用到HDFS中。
基于PAX的行列混合存儲思想,本文提出在HDFS上使用同是行列混合存儲的ORCFile。ORCFile的前身是一種高效的數(shù)據(jù)存儲結(jié)構(gòu)RCFile(Record Columnar File)[19],并被應用于后來發(fā)展為Apache Hive的Facebook的數(shù)據(jù)倉庫中。與傳統(tǒng)數(shù)據(jù)庫的數(shù)據(jù)存儲結(jié)構(gòu)相比,RCFile更有效地滿足基于MapReduce的數(shù)據(jù)倉庫的四個關(guān)鍵需求,即快速加載數(shù)據(jù)、快速處理查詢、高效利用存儲空間和高度適應動態(tài)工作負載。
RCFile的核心思想是首先把表水平切分成多個行組(row groups),然后組內(nèi)按照列垂直切分,這樣行組之內(nèi)便按列存儲。當一個行組內(nèi)的所有列寫到磁盤時,RCFile就會以列為單位對數(shù)據(jù)使用類zlib/lzo的算法進行壓縮。當讀取列數(shù)據(jù)的時候使用惰性解壓策略(lazy decompression),也就是說用戶的某個查詢?nèi)绻皇巧婕暗讲糠至校琑CFile只會解壓涉及到的列而跳過無關(guān)列。通過在facebook的數(shù)據(jù)倉庫中選取有代表性的例子實驗,RCFile能夠提供5倍的壓縮比。
ORC File(Optimized Row Columnar File)[20]的設計思想與RCFile類似,但做了優(yōu)化,相比有以下優(yōu)點:1)每個task只輸出單個文件,這樣可以減少NameNode的負載;2)支持比RCFile更多的數(shù)據(jù)類型;3)文件中存儲了一些輕量級的索引數(shù)據(jù);4)基于數(shù)據(jù)類型的塊模式壓縮;5)用多個互相獨立的RecordReaders并行讀相同的文件;6)無需掃描markers就可以分割文件;7)控制讀寫所需要的內(nèi)存量。
Spark應用程序的輸入輸出采用行列混合式模型作為存儲結(jié)構(gòu),通過下文的實驗驗證,確實可以顯著地提升程序性能。
本文分別針對高性能Hadoop系統(tǒng)的技術(shù)特點和應用場景做了相應測試。
3.1 SSD性能評測
本文采用TPC-DS國際標準測試集進行了一系列測試,數(shù)據(jù)量為300GB。測試平臺是一個4臺服務器的集群(每臺服務器的硬件配置為2*E5-2620/256GB Mem/8*1TB HDD, 600GB SSD)。
測試TPC-DS中SQL語句運行所花時間對比的結(jié)果見表2和圖3。我們能看到,SSD和內(nèi)存的性能都遠遠好于機械硬盤。而SSD相比內(nèi)存,其性能最多相差在20%以內(nèi),平均差10%以內(nèi)。
Table2 Comparison of DISK/RAM/SSD Testing Results表2 DISK/RAM/SSD測試結(jié)果比較
Fig.3 DISK/RAM/SSD Testing Result圖3 DISK/RAM/SSD測試結(jié)果
3.2 不同文件格式在SSD的性能評測
下面用IO密集的SQL語句測試不同文件存儲格式在不同介質(zhì)上的運算速度。測試分別比較:將文本文件從Spark中緩存到HDD上、將文本文件從Spark中緩存到SSD上和將ORCFile文件緩存到SSD上的性能。設計的三大場景如下:
Table3 Testing scenarios表3 測試場景
TPC-DS中I/O密集的測試集結(jié)果如圖4顯示,文本存儲格式(SequenceFile)搭配SSD緩存相較文本文件搭配HDD緩存,計算性能有所提高。但是當采用行列混合存儲格式(ORCFile)搭配SSD做緩存時,計算性能出現(xiàn)了大幅提升數(shù)倍??偨Y(jié)測試結(jié)果,使用ORCFile作為文件存儲格式和SSD作為緩存可以大幅提高Spark的計算性能。
Fig.4 Testing Comparison of Different formats on Different media圖4 對比不同格式在不同介質(zhì)上的測試結(jié)果
3.3 基于SSD的Hadoop系統(tǒng)的性能評測
結(jié)合某省移動流量經(jīng)營平臺的測試案例,分別采用10臺機器(IBM X3650, 2*E5-2670/128GB Mem/16*800G HDD, 1TB SSD),數(shù)據(jù)源每天4TB。結(jié)合表4,其中方案一采用SSD+Spark(即基于SSD的Spark全棧)的技術(shù)方案,SSD完全代替了內(nèi)存計算引擎中的內(nèi)存存儲介質(zhì)的作用,既能實現(xiàn)90%的內(nèi)存計算引擎速度,同時又能完全存放3-4TB的流量經(jīng)營分析的大數(shù)據(jù)量。方案二主要采用Hadoop發(fā)行商用版本MapReduce和Spark引擎。結(jié)果顯示,基于SSD+Spark的技術(shù)方案性能提升2x-5x。
Table4 Testing Comparison of Different Hadoop system表4 Hadoop系統(tǒng)對比測試結(jié)果
本文從基于SSD的混合存儲體系、Spark高性能計算模型和行列混合文件存儲結(jié)構(gòu)等方面進行闡述和分析,提出了一種高性能Hadoop的設計思路和實踐,結(jié)合實驗測試結(jié)果,論證了基于SSD的高性能Hadoop系統(tǒng)的設計具有更高的性能,同時能滿足大數(shù)據(jù)應用場景。
同時也發(fā)現(xiàn)今后的研究空間可側(cè)重以下方面:
1)數(shù)據(jù)存儲結(jié)構(gòu)優(yōu)化。當前ORCFile文件格式已經(jīng)有助于性能提升,但還需要結(jié)合SSD,進一步研究提升高效、低延時、高壓縮比的方法。
2)通用性、穩(wěn)定性更高的混合存儲模型的實現(xiàn)和優(yōu)化。Hadoop系統(tǒng)已經(jīng)開始支持混合存儲模型,未來SSD如何合理有效的應用將是一個重要的研究方向。
3)新一代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-10-07]. http://hadoop.apache.org
[3] HDFS Architecture[EB/OL]. [2015-10-07]. http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html
[4] MapReduce Tutorial. [2015-10-07]. http://hadoop.apache.org/docs/r1.2.1/mapred_tutorial.html
[5] Ma DZ, Feng JH, Li GL. LazyFTL:A page-level flash translation layer optimized for NAND flash memory [C]//Proc. of the 2011 ACM SIGMOD Int’l Conf. on Management of Data. New York: ACM Press, 2011:1-12.
[6] SSD White Paper[EB/OL]. [2015-10-07]. http://www.samsung.com/global/business/semiconductor/minisite/SSD/global/html/whitepaper/whitepaper.html
[7] Chen Zhiguang, Xiao Nong, Liu Fang, et al.A High Performance Reliable Storage System Using HDDs as the Backup of SSDs[J].Journal of Computer Research and Development,2013,50(1):80-89.
[8] YANG Pu-Yuan , JIN Pei-Quan, YUE Li-Hua.A Time-Sensitive and Efficient Hybrid Storage Model Involving SSD and HDD[J].Chinese Journal of Computers,2012,35(11):2294-2305.
[9] Facebook Flashcache[EB/OL]. [2015-10-07]. https://github.com/facebook/flashcache
[10] T. Kgil, D. Roberts, T. Mudge. Improving NAND Flash Based Disk Caches[C]//Proc of the 35th int'l Symp. on Computer Architecture, 2008:327-338,2008.
[11] B. Debnath, S. Sengupta, J. Li. Flashstore:High throught persistent key-value store[J].Proceedings of the Very Large Data Base (VLDB) Endowment,2010,(02):1414-1425.
[12] Seok-Hoon Kang, Dong-Hyun Koo, Woon-Hak Kang,et al.A Case for Flash Memory SSD in Hadoop Applications[J].International Journal of Control and Automation,2013,6(1):201-209.
[13] Apache Hadoop[EB/OL]. [2015-10-07]. http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
[14] Arpit Agarwal. Heterogeneous Storages in HDFS[EB/OL]. (2013-11-20)[2015-10-07] .https://issues.apache.org/jira/secure/attachment/12615761/20131125-HeterogeneousStorage.pdf
[15] Apache Spark[EB/OL]. [2015-10-07]. http://spark.apache.org
[16] Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin,et al.Spark: Cluster Computing withWorking Sets[C/OL].[2015-10-07]. http://www.cs.berkeley.edu/~matei/papers/2010/hotcloud_spark.pdf
[17] Matei Zaharia, Mosharaf Chowdhury, Tathagata Das,et al. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing[C/OL].[2015-10-07] .
[18] http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf
[19] Matei Zaharia.An Architecture for Fast and General Data Processing on Large Clusters [D].Berkeley:EECS Department University of California, Berkeley, 2013.
[20] Yongqiang He, Rubao Lee, Yin Huai, et al.RCFile:a fast and space-efficient data placement structure in MapReduce-based warehouse systems[C]//Proc of International Conference on Data Engineering (ICDE 2011).Hannover, Germany,2011:1199-1208.
[21] ORC File Format[EB/OL]. [2015-10-07]. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC
Design and Application of a High Performance SSD-based Hadoop System
CHEN Li1, WANG Rui2, HU Gang3
(1 Guangdong Communication Polytechnic, Guangzhou 510650, China; 2 China Mobile Group Guangdong Co., Ltd.,Guangzhou 510623, China; 3 Transwarp(Shanghai) Co., Ltd., Shanghai 200233, China)
In the big data platform, the deficiency of MapReduce begins to emerge, which is designed for batch computation with the first generation of Ha-doop. Data read and intermediate results depend a lot on disk I/O, and the performance is limited. The memory based computation, spark, is more important. While the cost is too high, though it is 10-100 times faster than Hadoop MapReduce. This papers proposes a storage solution with SSD as big data caches,which is faster and cheaper. A SSD/HDD hybrid storage architecture is explored. Meanwhile, with the optimization techniques of efficient Spark computation engine and hybrid row-column data placement structure respectively, this paper proposes a high performance Hadoop system based on SSD, an effective solution to processing performance and storage space in the big data computing system. The experimental results show that the improvement the system is significant.
big data; hadoop; spark; SSD; row-column storage
TP311
A
1672-2841(2016)01-0039-06
2016-02-28
廣東省高職高專云計算與大數(shù)據(jù)專業(yè)委員會教育科研課題(GDYJSKT14-03)。
陳麗,女,講師,碩士,研究領(lǐng)域為大數(shù)據(jù)技術(shù)及應用、信息系統(tǒng)管理。