Hadoop大資料存算分離,杉巖MOS知你所想

杉巖資料發表於2021-08-20

大資料經過了多年的發展,以Hadoop生態為核心的大資料框架已經十分成熟,這個過程伴隨著對儲存需求的不斷變化,從而演進出了資料湖的概念以及在資料湖儲存方面的幾個新需求特徵:

如資料的分佈組織與後設資料的高效管理;儲存和計算分離,大幅降低成本;資料全生命週期管理;多訪問協議支援達到All in One的儲存能力;具備資料的智慧感知,能夠更好地輔佐、支撐上層業務。


從業務需求和大資料發展的趨勢來看,大資料存算分離是大勢所趨。


當前Hadoop儲存方案的侷限


目前Hadoop生態的預設儲存元件為HDFS,其本質上是存算一體的方案,存在很多不足,除了HDFS與計算應用元件的融合部署,導致整體叢集擴容時計算與儲存資源不平衡的問題之外,更主要在於HDFS自己的後設資料架構存在瓶頸以及資料冗餘效率的問題。總之,HDFS的發展適應不了當下快速增長的資料量對儲存的需求。


Hadoop社群也支援採用S3A介面卡的方式,將相容S3協議的物件儲存連結到Hadoop計算生態,實現存算分離。


杉巖資料的物件儲存產品杉巖MOS完全相容S3協議,可透過S3A介面卡實現對Hadoop大資料平臺的儲存供應,並且杉巖MOS支援大比例EC、資料自動分層儲存等特性。相比HDFS儲存,在不降低可靠性的情況下,提供了高價效比的海量資料管理能力。但是S3A的方案仍然面臨著一些問題:


物件儲存自身KV形式的資料管理方式,在上層Hadoop計算框架使用的一些類POSIX語義的操作(比如目錄的重新命名,或對子目錄的list操作)時成為了影響效能的關鍵因素,主要原因為物件儲存自身沒有目錄的概念,上層計算側的目錄重新命名和list操作,都會轉換為時間複雜度極高的大量物件的“Copy+Delete”操作與遍歷操作,在大規模作業時瓶頸效應尤其突出。


針對這些問題,S3A方案的業界頭部使用者與主要貢獻廠商也在支援S3的場景下開發了各種S3A Committer,透過S3協議裡的一些高階特性,巧妙地規避掉了如目錄重新命名的操作,但在流程上面的這些調整改造,也引入瞭如異常處理與任務回退的懲罰放大問題,以及第三方元件依賴等問題。因此,目前S3A的方案在私有云大資料處理環境中,更多地使用於小規模資料處理或備份歸檔的場景。


基於杉巖MOS的儲存分離解決方案


面對以上HDFS與S3A的問題,杉巖資料推出了基於杉巖MOS海量物件儲存的大資料存算分離場景的儲存解決方案。除了提供業界通用的S3A方案,以解決普通大資料業務和大資料中的備份歸檔場景的需求之外,杉巖資料研發實現了相容HDFS介面能力的高效能MOSFS資料湖檔案閘道器,MOSFS核心元件分為以下幾個部分:


1、後設資料服務:即MOSFS-MDS,資料湖檔案閘道器擁有獨立的類檔案系統的分散式後設資料服務,具備橫向擴充套件能力,同時也解決了HDFS NameNode在海量小檔案場景下的後設資料效能瓶頸問題。


2、資料部分:MOSFS的資料部分基於杉巖 MOS底層的物件儲存,透過IO路徑最佳化,拋棄了S3A透過S3協議閘道器(即下圖中的RGW)訪問底層資料的方式,實現了透過檔案閘道器客戶端直接與底層儲存平臺層(即下圖中的RADOS)進行資料互動的能力,進一步提升了資料訪問的效率與效能。


3、MOSFS客戶端:即MOSFS-Client,實現了對HDFS介面協議完全相容,可以保證應用層就像使用原生HDFS儲存一樣使用MOSFS。同時,為了解決存算分離後儲存與計算之間的網路延遲問題,MOSFS 提供了客戶端快取能力,利用客戶端的記憶體或SSD資源,加速資料的讀取。


圖1 杉巖MOS存算分離方案架構圖


實際場景中,透過在計算平臺部署我們提供的MOSFS-Hadoop.jar包與簡單的配置,即可方便地實現Hadoop平臺的元件與分離部署的儲存互動。同時針對業界使用比較廣泛的CDH平臺,MOSFS也開發了配套的Parcel資源包,利用CDH自身的管理便捷地配置使用MOSFS提供的儲存空間。


幾種方案的效能對比


針對大資料的場景,我們使用相同的4節點CDH計算叢集和杉巖MOS做了上文提及的HDFS/S3A/MOSFS三種方案的效能對比測試。為了體現存算一體與存算分離架構的測試環境公平性,存算一體時的HDFS儲存與存算分離時所用的MOS儲存,均使用相同的節點數和相同的資料盤。



圖2 HDFS存算一體測試環境


圖3 S3A&MOSFS存算分離測試環境



1、TeraGen/TeraSort/TeraValidate測試

TeraGen/TeraSort/TeraValidate是Hadoop提供的測試HDFS檔案系統的讀寫效能,及對MapReduce自動排序能力測試的標準測試用例,主要分為三步:

1)透過TeraGen生成排序的隨機資料;

2)對輸入資料執行TeraSort排序;

3)對排序的輸出資料利用TeraValidate進行校驗。


我們使用相同的Hadoop MapReduce配置執行100多億條100Byte的資料,合計1TB資料規模的對應任務。


圖4 TeraGen/TeraSort/TeraValidate測試資料對比


結果顯示,MOSFS在TeraGen與TeraSort任務中執行效率明顯高於HDFS與S3A方案。其中在相同的TeraGen任務上,HDFS耗時為MOSFS的2.31倍,S3A方案耗時為MOSFS的3.3倍;相同的TeraSort任務上,HDFS耗時為MOSFS的1.32倍,S3A方案耗時為MOSFS的1.56倍;在TeraValidate任務中計算的消耗比重大於資料訪問的比重,所以三者的效率相當。


2、RandomTextWriter/WordCount測試

RandomTextWriter用來隨機資料生成壓力測試,且經典的單詞計數WordCount 是CPU 算力壓力測試的常用用例。其中,RandomTextWriter 使用Map & Reduce來執行分散式作業,每個任務生成一個大的未排序的隨機單詞序列(其中鍵為5-10個單詞,值為20-100個單詞),我們用它來模擬生成1TB資料的壓力測試,然後對該1TB資料量進行WordCount任務統計單詞計數測試。 


圖5 RandomTextWriter/WordCount測試資料對比



結果顯示,RandomTextWriter生成任務時,MOSFS對比HDFS和S3A方案具有明顯的優勢,HDFS與S3A方案的執行時間都約為MOSFS的1.9倍。對於WordCount在計算節點同等配置下,Reduce階段執行效率大體一致,效能最佳化主要為Map讀取資料階段,WordCount整個任務耗時HDFS與S3A方案分別為MOSFS的1.7倍於1.2倍。


3、TestDFSIO測試

針對頻寬型的讀寫,我們執行的是HDFS常用I/O效能評估工具TestDFSIO的測試,本次測試採用檔案數1024個1GB大小檔案共1T資料量的規模來進行讀寫測試對比,測試結果如下:


圖6 TestDFSIO讀寫資料對比


結果顯示,TestDFSIO讀寫時MOSFS的效能優於HDFS和S3A,HDFS寫1T資料量執行的時間是MOSFS的1.5倍,S3A方案相同任務執行時間為MOSFS的1.3倍;且讀該1T資料量時HDFS的耗時是MOSFS的1.69倍,S3A方案相同任務執行時間是MOSFS的1.4倍。


4、HBase效能測試

YCSB是雅虎開源的分散式效能測試工具,常用於測試NoSQL資料庫的讀寫效能。我們使用 YCSB套件對HBase測試了1億條資料規模的寫入與讀取測試,且YCSB使用多計算節點併發測試讀寫效能。


圖7 HBase讀寫數 據對比


結果顯示,MOSFS在HBase小檔案IO場景業務中,HBase寫一億資料量時的OPS統計MOSFS分別是HDFS與S3A的2.15倍與2.3倍,讀該一億數量時的OPS統計MOSFS分別是HDFS與S3A的1.77倍與1.92倍,即MOSFS在HBase業務模型下,讀寫效能明顯優於HDFS與S3A方案。


總結


圖8 杉巖湖倉一體解決方案


作為國內SDS的頭部廠商,杉巖資料近年來深耕行業場景,尤其在應對海量資料爆炸式增長的條件下,潛心打磨分散式物件儲存杉巖MOS。上述文章中的測試資料也體現出了資料湖檔案閘道器MOSFS方案在Hadoop生態中的優勢,與杉巖MOS自身的高效能EC糾刪碼、生命週期管理、智慧處理引擎、ES檢索等高階特性相結合,使基於杉巖MOS為基座的湖倉一體方案更加完善,為客戶實現All in One的儲存能力。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956769/viewspace-2788047/,如需轉載,請註明出處,否則將追究法律責任。

相關文章