


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