Hadoop大數(shù)據(jù)存算分離,杉巖MOS知你所想
大數(shù)據(jù)經(jīng)過了多年的發(fā)展,以Hadoop生態(tài)為核心的大數(shù)據(jù)框架已經(jīng)十分成熟,這個過程伴隨著對存儲需求的不斷變化,從而演進出了數(shù)據(jù)湖的概念以及在數(shù)據(jù)湖存儲方面的幾個新需求特征:
如數(shù)據(jù)的分布組織與元數(shù)據(jù)的高效管理;存儲和計算分離,大幅降低成本;數(shù)據(jù)全生命周期管理;多訪問協(xié)議支持達到All in One的存儲能力;具備數(shù)據(jù)的智能感知,能夠更好地輔佐、支撐上層業(yè)務(wù)。
從業(yè)務(wù)需求和大數(shù)據(jù)發(fā)展的趨勢來看,大數(shù)據(jù)存算分離是大勢所趨。
當(dāng)前Hadoop存儲方案的局限
目前Hadoop生態(tài)的默認(rèn)存儲組件為HDFS,其本質(zhì)上是存算一體的方案,存在很多不足,除了HDFS與計算應(yīng)用組件的融合部署,導(dǎo)致整體集群擴容時計算與存儲資源不平衡的問題之外,更主要在于HDFS自己的元數(shù)據(jù)架構(gòu)存在瓶頸以及數(shù)據(jù)冗余效率的問題。總之,HDFS的發(fā)展適應(yīng)不了當(dāng)下快速增長的數(shù)據(jù)量對存儲的需求。
Hadoop社區(qū)也支持采用S3A適配器的方式,將兼容S3協(xié)議的對象存儲鏈接到Hadoop計算生態(tài),實現(xiàn)存算分離。
杉巖數(shù)據(jù)的對象存儲產(chǎn)品杉巖MOS完全兼容S3協(xié)議,可通過S3A適配器實現(xiàn)對Hadoop大數(shù)據(jù)平臺的存儲供應(yīng),并且杉巖MOS支持大比例EC、數(shù)據(jù)自動分層存儲等特性。相比HDFS存儲,在不降低可靠性的情況下,提供了高性價比的海量數(shù)據(jù)管理能力。但是S3A的方案仍然面臨著一些問題:
對象存儲自身KV形式的數(shù)據(jù)管理方式,在上層Hadoop計算框架使用的一些類POSIX語義的操作(比如目錄的重命名,或?qū)ψ幽夸浀膌ist操作)時成為了影響性能的關(guān)鍵因素,主要原因為對象存儲自身沒有目錄的概念,上層計算側(cè)的目錄重命名和list操作,都會轉(zhuǎn)換為時間復(fù)雜度極高的大量對象的“Copy+Delete”操作與遍歷操作,在大規(guī)模作業(yè)時瓶頸效應(yīng)尤其突出。
針對這些問題,S3A方案的業(yè)界頭部用戶與主要貢獻廠商也在支持S3的場景下開發(fā)了各種S3A Committer,通過S3協(xié)議里的一些高級特性,巧妙地規(guī)避掉了如目錄重命名的操作,但在流程上面的這些調(diào)整改造,也引入了如異常處理與任務(wù)回退的懲罰放大問題,以及第三方組件依賴等問題。因此,目前S3A的方案在私有云大數(shù)據(jù)處理環(huán)境中,更多地使用于小規(guī)模數(shù)據(jù)處理或備份歸檔的場景。
基于杉巖MOS的存儲分離解決方案
面對以上HDFS與S3A的問題,杉巖數(shù)據(jù)推出了基于杉巖MOS海量對象存儲的大數(shù)據(jù)存算分離場景的存儲解決方案。除了提供業(yè)界通用的S3A方案,以解決普通大數(shù)據(jù)業(yè)務(wù)和大數(shù)據(jù)中的備份歸檔場景的需求之外,杉巖數(shù)據(jù)研發(fā)實現(xiàn)了兼容HDFS接口能力的高性能MOSFS數(shù)據(jù)湖文件網(wǎng)關(guān),MOSFS核心組件分為以下幾個部分:
1、元數(shù)據(jù)服務(wù):即MOSFS-MDS,數(shù)據(jù)湖文件網(wǎng)關(guān)擁有獨立的類文件系統(tǒng)的分布式元數(shù)據(jù)服務(wù),具備橫向擴展能力,同時也解決了HDFS NameNode在海量小文件場景下的元數(shù)據(jù)性能瓶頸問題。
2、數(shù)據(jù)部分:MOSFS的數(shù)據(jù)部分基于杉巖 MOS底層的對象存儲,通過IO路徑優(yōu)化,拋棄了S3A通過S3協(xié)議網(wǎng)關(guān)(即下圖中的RGW)訪問底層數(shù)據(jù)的方式,實現(xiàn)了通過文件網(wǎng)關(guān)客戶端直接與底層存儲平臺層(即下圖中的RADOS)進行數(shù)據(jù)交互的能力,進一步提升了數(shù)據(jù)訪問的效率與性能。
3、MOSFS客戶端:即MOSFS-Client,實現(xiàn)了對HDFS接口協(xié)議完全兼容,可以保證應(yīng)用層就像使用原生HDFS存儲一樣使用MOSFS。同時,為了解決存算分離后存儲與計算之間的網(wǎng)絡(luò)延遲問題,MOSFS 提供了客戶端緩存能力,利用客戶端的內(nèi)存或SSD資源,加速數(shù)據(jù)的讀取。
圖1 杉巖MOS存算分離方案架構(gòu)圖
實際場景中,通過在計算平臺部署我們提供的MOSFS-Hadoop.jar包與簡單的配置,即可方便地實現(xiàn)Hadoop平臺的組件與分離部署的存儲交互。同時針對業(yè)界使用比較廣泛的CDH平臺,MOSFS也開發(fā)了配套的Parcel資源包,利用CDH自身的管理便捷地配置使用MOSFS提供的存儲空間。
幾種方案的性能對比
針對大數(shù)據(jù)的場景,我們使用相同的4節(jié)點CDH計算集群和杉巖MOS做了上文提及的HDFS/S3A/MOSFS三種方案的性能對比測試。為了體現(xiàn)存算一體與存算分離架構(gòu)的測試環(huán)境公平性,存算一體時的HDFS存儲與存算分離時所用的MOS存儲,均使用相同的節(jié)點數(shù)和相同的數(shù)據(jù)盤。
1、TeraGen/TeraSort/TeraValidate測試 TeraGen/TeraSort/TeraValidate是Hadoop提供的測試HDFS文件系統(tǒng)的讀寫性能,及對MapReduce自動排序能力測試的標(biāo)準(zhǔn)測試用例,主要分為三步:1)通過TeraGen生成排序的隨機數(shù)據(jù);2)對輸入數(shù)據(jù)執(zhí)行TeraSort排序;3)對排序的輸出數(shù)據(jù)利用TeraValidate進行校驗。
我們使用相同的Hadoop MapReduce配置執(zhí)行100多億條100Byte的數(shù)據(jù),合計1TB數(shù)據(jù)規(guī)模的對應(yīng)任務(wù)。
結(jié)果顯示,MOSFS在TeraGen與TeraSort任務(wù)中執(zhí)行效率明顯高于HDFS與S3A方案。其中在相同的TeraGen任務(wù)上,HDFS耗時為MOSFS的2.31倍,S3A方案耗時為MOSFS的3.3倍;相同的TeraSort任務(wù)上,HDFS耗時為MOSFS的1.32倍,S3A方案耗時為MOSFS的1.56倍;在TeraValidate任務(wù)中計算的消耗比重大于數(shù)據(jù)訪問的比重,所以三者的效率相當(dāng)。
2、RandomTextWriter/WordCount測試
RandomTextWriter用來隨機數(shù)據(jù)生成壓力測試,且經(jīng)典的單詞計數(shù)WordCount 是CPU 算力壓力測試的常用用例。其中,RandomTextWriter 使用Map & Reduce來運行分布式作業(yè),每個任務(wù)生成一個大的未排序的隨機單詞序列(其中鍵為5-10個單詞,值為20-100個單詞),我們用它來模擬生成1TB數(shù)據(jù)的壓力測試,然后對該1TB數(shù)據(jù)量進行WordCount任務(wù)統(tǒng)計單詞計數(shù)測試。
結(jié)果顯示,RandomTextWriter生成任務(wù)時,MOSFS對比HDFS和S3A方案具有明顯的優(yōu)勢,HDFS與S3A方案的執(zhí)行時間都約為MOSFS的1.9倍。對于WordCount在計算節(jié)點同等配置下,Reduce階段執(zhí)行效率大體一致,性能優(yōu)化主要為Map讀取數(shù)據(jù)階段,WordCount整個任務(wù)耗時HDFS與S3A方案分別為MOSFS的1.7倍于1.2倍。
3、TestDFSIO測試
針對帶寬型的讀寫,我們執(zhí)行的是HDFS常用I/O性能評估工具TestDFSIO的測試,本次測試采用文件數(shù)1024個1GB大小文件共1T數(shù)據(jù)量的規(guī)模來進行讀寫測試對比,測試結(jié)果如下:
結(jié)果顯示,TestDFSIO讀寫時MOSFS的性能優(yōu)于HDFS和S3A,HDFS寫1T數(shù)據(jù)量執(zhí)行的時間是MOSFS的1.5倍,S3A方案相同任務(wù)執(zhí)行時間為MOSFS的1.3倍;且讀該1T數(shù)據(jù)量時HDFS的耗時是MOSFS的1.69倍,S3A方案相同任務(wù)執(zhí)行時間是MOSFS的1.4倍。
4、HBase性能測試
YCSB是雅虎開源的分布式性能測試工具,常用于測試NoSQL數(shù)據(jù)庫的讀寫性能。我們使用 YCSB套件對HBase測試了1億條數(shù)據(jù)規(guī)模的寫入與讀取測試,且YCSB使用多計算節(jié)點并發(fā)測試讀寫性能。
結(jié)果顯示,MOSFS在HBase小文件IO場景業(yè)務(wù)中,HBase寫一億數(shù)據(jù)量時的OPS統(tǒng)計MOSFS分別是HDFS與S3A的2.15倍與2.3倍,讀該一億數(shù)量時的OPS統(tǒng)計MOSFS分別是HDFS與S3A的1.77倍與1.92倍,即MOSFS在HBase業(yè)務(wù)模型下,讀寫性能明顯優(yōu)于HDFS與S3A方案。
總結(jié)
圖2 杉巖湖倉一體解決方案
作為國內(nèi)SDS的頭部廠商,杉巖數(shù)據(jù)近年來深耕行業(yè)場景,尤其在應(yīng)對海量數(shù)據(jù)爆炸式增長的條件下,潛心打磨分布式對象存儲杉巖MOS。上述文章中的測試數(shù)據(jù)也體現(xiàn)出了數(shù)據(jù)湖文件網(wǎng)關(guān)MOSFS方案在Hadoop生態(tài)中的優(yōu)勢,與杉巖MOS自身的高性能EC糾刪碼、生命周期管理、智能處理引擎、ES檢索等高級特性相結(jié)合,使基于杉巖MOS為基座的湖倉一體方案更加完善,為客戶實現(xiàn)All in One的存儲能力。