加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

Ozone | 數(shù)據(jù)湖存儲,“統(tǒng)一”和“融合”哪個更好?

2022/07/21
708
閱讀需 11 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

關(guān)于Alluxio的文章讓潭主把注意力轉(zhuǎn)移到了大數(shù)據(jù)上。

文中提及Cloudera作為Hadoop生態(tài)最后的種子選手,為什么沒有鼓搗出Alluxio這樣的東西?

沒想到在學(xué)習(xí)Cloudera的過程中無意間發(fā)現(xiàn)了Ozone,解答了潭主之前的疑問。

技術(shù)體系繁雜,存在著很多“平行宇宙”。今天,潭主跟大家分享最近學(xué)習(xí)的一個數(shù)據(jù)湖存儲技術(shù),Ozone。

Ozone是哪路神

Ozone是Apache軟件基金會下的一個項目,其定位是:一個用戶大數(shù)據(jù)分析和云原生應(yīng)用、具有高擴展性、強一致性的分布式Key-Value對象存儲。

看過潭主文章的讀者自然對Alluxio有所了解,在使用功能上,Ozone跟Alluxio類似,也兼容支持S3和HDFS的API。

因為上述特性,Ozone可以“透明”地支持現(xiàn)有Hadoop生態(tài)中如Spark和Hive等上層計算框架,無需修改應(yīng)用代碼。

套路是一樣的,把自己“模仿”成高手的樣子。當(dāng)然,簡單模仿肯定不行,還要有屬于自己的“創(chuàng)新”。

潭主的“窮人”思維

傳統(tǒng)保險行業(yè)受限于業(yè)務(wù)模式,存在很多的數(shù)據(jù)“孤島”,每個島的容量也有限。

不過,這幾年非結(jié)構(gòu)化業(yè)務(wù)數(shù)據(jù)增長迅猛,之前引入的HCP對象存儲已經(jīng)是上十億的量級。

雖然之前也上線了一些大數(shù)據(jù)項目,但據(jù)潭主所知,Hadoop集群的規(guī)模其實并不大,以至于寫此文之前,潭主受限于自身經(jīng)驗對Hadoop其實并無痛感。

即便是互聯(lián)網(wǎng)行業(yè),十多年前可能也無法預(yù)料數(shù)據(jù)膨脹得如此之快,以至于Hadoop很快就變得力不從心。

互聯(lián)網(wǎng)的“富人”思維

這兩年,數(shù)據(jù)湖這個詞很火。

大家對于數(shù)據(jù)湖的理解也不盡相同,有人認(rèn)為Hadoop是數(shù)據(jù)湖,而有人認(rèn)為S3也是數(shù)據(jù)湖。

換個角度,從線上公有云的視角看,S3是主流存儲,而到了線下的私有云,Hadoop似乎更有優(yōu)勢一些,這種情況無形中對于混合云的一統(tǒng)江湖形成了存儲上的障礙。

因此,面向未來的數(shù)據(jù)湖技術(shù)應(yīng)該是向上兼容多種主流計算框架,平滑支撐多種應(yīng)用場景,向下對接不同的存儲引擎,實現(xiàn)數(shù)據(jù)訪問接口的標(biāo)準(zhǔn)化。

從最近了解的技術(shù)發(fā)展趨勢看,這種承上啟下、統(tǒng)一標(biāo)準(zhǔn)的存儲技術(shù)將成為下一代數(shù)據(jù)湖的顯著特征。

況且對于互聯(lián)網(wǎng),HDFS系統(tǒng)的確在集群擴展性、支持應(yīng)用標(biāo)準(zhǔn)上的確存在一些局限性。

為了解決HDFS存在的問題,開源社區(qū)這些年也沒閑著,嘗試了不少解決方案。

HDFS的“聯(lián)邦”時代

最初Hadoop集群只允許有一個命名空間(Namespace),且只能被一個NameNode管理。

雖然可以通過添加底層DataNode節(jié)點實現(xiàn)集群橫向擴展,增加存儲空間,但由于所有的Block元數(shù)據(jù)都駐留在NameNode內(nèi)存中,在集群規(guī)模增大時,NameNode很容易成為瓶頸,直接限制了HDFS的文件、目錄和數(shù)據(jù)塊的數(shù)量。

Hadoop 社區(qū)為了解決 HDFS 橫向擴展的問題,做了兩個聯(lián)邦方案(如上圖):

  • NNF(NameNode Federation)
  • RBF(Router Based Federation)

早期的NNF方案中,集群引入了多個NameNode,分別管理不同的Namespace和對應(yīng)的BlockPool,多個NameNode可以共享Hadoop集群中的DataNode。

雖然解決了Namespace的擴展問題,但需要對HDFS的Client進(jìn)行“靜態(tài)”配置掛載,還要結(jié)合ViewFS才能實現(xiàn)統(tǒng)一入口。

而在RBF的聯(lián)邦方案中,嘗試把“掛載表”從Client中抽離出來形成了Router,雖然Hadoop集群是獨立的,但同時又增加了一個“State Store”組件,架構(gòu)變得更復(fù)雜。

局部改進(jìn)的“聯(lián)邦”方案對于面向未來的大數(shù)據(jù)存儲而言,治標(biāo)不治本。

青出于藍(lán)而勝于藍(lán)

有時候,最好的優(yōu)化就是另起爐灶。

畢竟Hadoop技術(shù)已經(jīng)很多年了,當(dāng)下的軟硬件環(huán)境已與當(dāng)初大不相同,系統(tǒng)重構(gòu)也在情理之中。

與其等別人來革HDFS的命,不如自我革命。目前看,Ozone的確給用戶提供了一個新選擇。

就好像CDH和HDP最終融合成了CDP一樣,HDFS和S3也可以融合成Ozone。

總之,Ozone站在Hadoop這個巨人的肩膀上,設(shè)計之初就是為了替換掉HDFS,青出于藍(lán)而勝于藍(lán)。

潭主家的“存儲一哥”

早年間接觸過Ceph,也搞過HCP(Hitachi Content Platform)對象存儲,這些經(jīng)驗對潭主理解Ozone大有裨益。

特意查了一下自家的HCP,發(fā)現(xiàn)影像文件已經(jīng)20多億個了,存儲容量也小2PB。不過查詢過程中明顯感覺到元數(shù)據(jù)響應(yīng)緩慢,估計快該擴容了。

言歸正傳,再來說說Ozone的核心概念:

  • Volume:通常表示用戶、業(yè)務(wù),與HCP中的租戶(Tenant)對應(yīng)
  • Bucket:通常表示業(yè)務(wù)、應(yīng)用,與HCP中的命名空間(Namespace)對應(yīng)
  • Key:對應(yīng)的就是實際的Object

Ozone的存儲路徑為/Volume/Bucket/Key,一個業(yè)務(wù)可以對應(yīng)一個或多個Volume,每個Volume可以包含多個Bucket,在訪問方式上Ozone實現(xiàn)了ofs和o3fs的適配和協(xié)議封裝

值得注意的是,HCP里面有文件夾的概念,就是說對象文件有層次結(jié)構(gòu),但Ozone在設(shè)計上是扁平的,目錄是一個“偽目錄”概念,是文件名的一部分,統(tǒng)一作為Key而存在。

Ozone的體系架構(gòu)

介紹完了概念,再看看Ozone的體系架構(gòu)(如上圖):

  • OM(Ozone Manager):通過RocksDB的K-V方式管理Namespace,Raft協(xié)議保持高可用,Shardig實現(xiàn)水平擴展
  • SCM(Storage Container Manager):用于Ozone集群管理,負(fù)責(zé)分配Block,跟蹤SC復(fù)制狀態(tài)
  • DataNode:負(fù)責(zé)向SCM匯報SC狀態(tài)
  • SC(Storage Container):Ozone的實際存儲單元
  • Recon Server:用于監(jiān)控Ozone集群

Ozone做了架構(gòu)優(yōu)化,上層實現(xiàn)職能分離,OM負(fù)責(zé)管理Namespace,SCM負(fù)責(zé)管理Storage Containers。

下層實現(xiàn)了一個叫Hadoop Distributed Data Store(HDDS)的高可用、塊存儲層。

Ozone中的一個DataNode包括多個Storage Container,每個SC的容量(默認(rèn)5GB,可配置)遠(yuǎn)大于Hadoop中Block容量(默認(rèn)128MB),這種設(shè)計使得每個DN發(fā)送給SCM的Container-Report系統(tǒng)壓力要遠(yuǎn)遠(yuǎn)小于傳統(tǒng)Hadoop集群的Block-Report。

Storage Container作為Ozone的基礎(chǔ)存儲和復(fù)制單元,類似于一個“超級塊”,通過其內(nèi)置RocksDB(key記錄BlockID,Value記錄object的文件名、偏移量和長度),實現(xiàn)對小文件的塊管理。

Ozone,新一代的“融合”數(shù)據(jù)湖存儲

在網(wǎng)上看到之前某互聯(lián)網(wǎng)大廠專家的分享,現(xiàn)網(wǎng)同時在使用HDFS和Ceph。

HDFS主要用于大數(shù)據(jù)分析場景,但機器學(xué)習(xí)場景中受限于大量小文件而使用Ceph。

不過,在介紹Ozone的Roadmap時說未來會在存儲層引入Ozone。

開源世界,風(fēng)起云涌,前腳剛看過Alluxio,覺得眼前一亮,這會兒再看Ozone,更是金光閃閃。

Ozone既是Hadoop的優(yōu)化升級版,又能“分層”解決海量小文件的對象存儲,再加上對云原生CSI的支持,讓其成為了新一代“融合”存儲。

Ozone這股新勢力著實讓潭主不敢小覷,希望未來能有機會做些實踐。

存儲圈,數(shù)據(jù)不息,折騰不止!
?

相關(guān)推薦

電子產(chǎn)業(yè)圖譜