前言
目前,先進組織都已經建立或者正在規劃建設自己的數據湖,用來支撐大數據分析業務。存儲作為數據湖的底座,業界有兩個技術流派:一是基于分布式文件,二是基于對象存儲。
為滿足大數據不同場景需求,XSKY 星辰天合基于對象存儲、文件存儲不同存儲類型,提供不同大數據存算分離方案。
在上一篇文章中,我們詳細介紹了基于分布式文件存儲的大數據方案,大數據存算分離方案上篇:基于分布式文件的數據就地分析。
本文是XSKY星辰天合大數據存算分離解決方案的下篇,詳細介紹基于對象存儲的大數據方案。
數據湖發展趨勢
數據湖最早是由 Pentaho 公司的創始人兼 CTO 詹姆斯·迪克森在2010年10月紐約Hadoop World大會上提出來的,當時的目標是為了推廣Hadoop。十幾年過去了,Hadoop 已逐漸退溫,但數據湖還在大數據時代持續火熱。
數據湖即指數據湖存儲,可以集中式存儲各種類型數據,包括:結構化、半結構化和非結構化數據。數據可以按原始形態直接存儲(無需先對數據進行結構化處理),覆蓋多種類型數據輸入源。數據湖無縫對接多種計算分析平臺,對Hadoop生態支持良好,存儲在數據湖中的數據可以直接對其進行數據分析、處理、查詢,通過對數據深入挖掘與分析,洞察數據中蘊含的價值。
目前面向大數據的數據湖存儲,像分布式文件系統和基于S3的對象存儲都屬于這個范疇,今天聚焦對象存儲的數據湖方案。
常見的對象存儲對接大數據方案
社區S3A方案
原生的Hadoop中包含一個的S3A連接器,基于Amazon Web Services (AWS) SDK實現的。Hadoop S3A允許Hadoop集群連接到任何與S3兼容的對象存儲。

通過上圖可以看到Hadoop應用通過S3A客戶端上傳數據時,需要調用S3 SDK把請求封裝成HTTP然后發送給XEOS的S3網關,通過S3網關將數據寫入存儲集群,從而達到數據上傳的目的。下載文件也是一樣的道理。
S3A雖然可以實現基本的計算和存儲分離,但基本架構和協議兼容性上還是存在一些問題:
由于基于標準的S3 SDK實現,無法利用各個存儲系統之間的特性差異進行針對性優化
S3A因為通過S3 SDK來實現,所以并不支持標準Hadoop文件系統的append、flush等操作
S3A將文件接收到本機硬盤后,再并發的分片上傳到對象存儲,對于本地磁盤IO有較大開銷,同時如果出現斷電、壞盤等異常,會造成已寫入到本地未回傳的數據無法訪問
元數據加速方案

由于對象存儲元key-value元數據機制的限制,在hadoop場景中當有大量元數據相關訪問或者操作時,元數據服務可能成為hadoop應用性能的瓶頸,因此業界出現了在對象存儲系統外部維護專用的元數據服務的方案,如Alluxio等方案,他們通過獨立的元數據服務來向hadoop提供高性能的元數據訪問,同時通過內部機制與對象存儲實現元數據的最終一致性。
該類型方案能為元數據性能帶來較大的提升,但同時需要引入獨立的元數據服務,同時存在著以下幾類挑戰:
獨立元數據與對象存儲實際數據的一致性管理
獨立元數據引入的資源開銷,如CPU、SSD等
獨立元數據后與對象存儲數據的互通方案
XSKY 星辰天合基于對象存儲的大數據方案——XHFS
方案介紹
XHFS借鑒了S3A的實現方案,在計算端集成了XHFS模塊,XHFS實現了Hadoop FileSystem的list、delete、rename、mkdir等接口,以及InputStream和OutputStream的XEOS對象讀寫功能。

·強一致模型
不同于部分對象存儲產品無法提供數據的強一致語義,如并發寫入時無法保證一定能讀到最新的數據,所以需要應用層利用外部機制進行強一致保障,如引入S3Guard等方案增加復雜度和成本,而XEOS原生提供強一致語義,無需引入復雜的業務邏輯進行強一致保障。
·高效重命名
重命名通常對于對象存儲是開銷較大的動作,但大數據場景利用目錄重命名來進行CAS(Compare And Swap,即比較并交換)的操作比較常見,CAS操作即將計算過程數據寫入臨時目錄,在任務結束時進行目錄的總體重命名,這就對使用對象存儲作為大數據底座的方式帶來了比較大的挑戰。
XEOS通過存儲后端優化,可以實現快速的對象重命名和目錄重命名,XHFS利用XEOS內部接口能夠向應用提供高效的文件重命名和目錄重命名功能。
·高性能寫入
XHFS將OutputStream改造為對象追加寫的方式,能夠提供更高性能的數據寫入方式,同時能大幅降低寫入過程中斷電等異常造成的數據寫入失敗的數據量。
·hflush、hsync支持
基于XEOS的特性,XHFS可以兼容hflush、hsync等對寫入一致性要求嚴格的語義。
方案優勢
·海量存儲,數據入湖
全局視角的多存儲平臺管理,單桶千億對象規格,分布式存儲架構無限橫向擴展,無需數據重平衡的整存儲池擴容、整存儲平臺擴容、整站點擴容,大規格EC策略以及數據分層保證數據長期、低成本的存放。
XEOS可以提供S3、NFS、HDFS的數據訪問互通,可直接將XEOS直接作為數據源進行大數據分析,無需將數據加載到HDFS后進行分析,從而可以降低成本,提高生產效率。

·數據流動,無縫互通
通過XHFS可將XEOS作為數據存儲與流轉中心,根據業務數據的特點通過生命周期管理、數據復制讓數據按需流動,滿足不同組件的性能和成本要求。結合XHFS與HDFS協議互通的特性,打破應用間數據壁壘,助力數據價值挖掘。
·擁抱混合云架構
無縫對接公有云,通過生命周期的流動、鏡像、歸檔,輕松上云;通過回源的重定向、代理、鏡像、CDN、重建,輕松下云。多種模式按需使用,發揮公有云的成本優勢,進一步降低TCO。
摘要:基于數據湖存儲的對象大數據XHFS方案,靈活適配S3A大數據生態,全生命周期管理,無縫上下云。

適用場景
·HDFS與XHFS共存模式

根據數據熱度的差異選擇不同的存儲方案,將溫熱數據放置在HDFS上滿足高性能要求,較冷的數據通過XHFS存放到XEOS滿足低成本的長期保存,通過ViewFS提供統一的訪問入口,對應用屏蔽存儲形態差異。從而實現計算資源的緊密整合,獲得高性能、低成本的大數據服務,提升企業數據價值。
·海量冷數據存儲和分析

對象存儲天然具有高可擴展性和低成本的優勢,是作為數據湖存儲的不二選擇。通過XHFS將海量的HDFS數據存入對象存儲,不但能獲得更低的存儲成本,同時可以實現冷數據的就地分析和管理,大幅降低企業的數據管理復雜度。
成功案例
上海金山區政府政務大數據應用平臺

該項目主要包含數據采集系統、大數據平臺和大數據可視化展示三個部分,通過平臺建設有效利用政務信息數據資源,提升服務質量、降低服務成本、增強決策科學性,為簡化審批流程、提高審批和服務效能創造良好基礎。實現了業務類型數據資源的采集、稽查及處理,通過數據質量報告對業務和技術規范性做檢驗指導;實現政務服務基本情況和靚點工作的成果應用展現;完成了政務服務、放管服改革成效與雙創環境建設等方面的指標設計,展現政務服務過程的整體圖景。
同城雙活部署架構

本項目利用XEDP同時交付塊存儲和對象存儲(即XEOS),一個機房一套存儲,同時采用同城雙活的災備部署架構,利用XSKY SDS的延展集群功能,實現兩個機房的實時數據同步和災備,通過在存儲層實現數據存儲和訪問的雙活,大幅簡化應用雙活部署難度,實現快速的雙活部署
業務邏輯架構

將XEDP/XEOS作為海量存儲的數據湖底座,得益于XHFS的兼容性實現了大數據相關組件無縫遷移和訪問。方案中XHFS與HDFS共存,將關系型熱數據寫入HBase,保留小規模HDFS集群以獲取更高的本地性能;而對于海量的非結構化數據,通過Sqoop將數據源直接導入XHFS,并由XHFS支撐Hive讀寫和分析請求,以獲取長期海量低成本存儲的收益?;赬HFS的數據湖,不但能接入大數據存儲,同時能很好的作為web應用平臺等數據的存儲目標,實現多協議互通訪問,達到數據湖存儲的目的。
方案優勢
XEDP同時交付多種存儲方式,一個機房一套存儲,滿足各類業務需求
快速、便捷實現雙活災備機制
數據統一入湖,數據互通,各組件數據協同生產消費
充分發揮HDFS和對象各自優勢,達到最佳TCO
責任編輯:宋辰





