原創(chuàng)|行業(yè)資訊|編輯:況魚杰|2020-06-11 10:53:45.587|閱讀 542 次
概述:這篇面向開發(fā)人員的文章更深入地介紹了系統(tǒng)體系結(jié)構(gòu)。研究了Ozone的構(gòu)建基塊,并了解如何將它們組合在一起以構(gòu)建可擴展的分布式存儲系統(tǒng)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
簡介
Apache Hadoop Ozone是一個分布式鍵值存儲,可以高效地管理大小文件。Ozone旨在與現(xiàn)有的Apache Hadoop生態(tài)系統(tǒng)很好地配合使用,并且滿足了對新的開源對象存儲的需求,該對象存儲旨在簡化操作使用并擴展到單個集群中的數(shù)千個節(jié)點和數(shù)十億個對象。
較早的文章介紹Ozone和Ozone概述介紹了臭氧的設(shè)計理念和關(guān)鍵概念。這篇面向開發(fā)人員的文章更深入地介紹了系統(tǒng)體系結(jié)構(gòu)。研究了Ozone的構(gòu)建基塊,并了解如何將它們組合在一起以構(gòu)建可擴展的分布式存儲系統(tǒng)。
了解可伸縮性問題
為了將Ozone擴展到數(shù)十億個文件,需要解決HDFS中存在的兩個瓶頸。
命名空間可伸縮性
不能再將整個名稱空間存儲在單個節(jié)點的內(nèi)存中。關(guān)鍵的見解是名稱空間具有引用位置,因此僅可以將工作集存儲在內(nèi)存中。名稱空間由稱為Ozone Manager的服務(wù)管理。
塊圖可擴展性
這是一個較難解決的問題。與名稱空間不同,由于存儲節(jié)點(DataNodes)定期發(fā)送有關(guān)系統(tǒng)中每個塊的塊報告,因此塊圖不具有引用位置。Ozone將這個問題委托給了一個稱為Hadoop分布式數(shù)據(jù)存儲(HDDS)的共享通用存儲層。
積木
Ozone由以下關(guān)鍵成分組成。
放在一起
在本節(jié)中,我們將了解如何將這些構(gòu)造塊放在一起以創(chuàng)建分布式鍵值存儲。
儲存容器
在最底層,Ozone將用戶數(shù)據(jù)存儲在存儲容器中。容器是塊名稱及其數(shù)據(jù)的鍵-值對的集合。鍵是在容器內(nèi)本地唯一的塊名稱。值是塊數(shù)據(jù),范圍從0字節(jié)到256MB。塊名稱不必是全局唯一的。
每個容器都支持一些簡單的操作:
容器使用RocksDB存儲在磁盤上,并針對較大的值進行了一些優(yōu)化。
RAFT復(fù)制
分布式文件系統(tǒng)必須容忍單個磁盤/節(jié)點的丟失,因此我們需要一種通過網(wǎng)絡(luò)復(fù)制容器的方法。為此,引入了一些容器的其他屬性。
容器副本存儲在DataNodes上。
容器生命周期
容器以打開狀態(tài)開始??蛻舳司帉憠K以打開容器,然后使用提交操作最終確定塊數(shù)據(jù)。編寫塊分為兩個階段:
存儲容器管理器(SCM)
現(xiàn)在,我們知道了如何將塊存儲在容器中以及如何通過網(wǎng)絡(luò)復(fù)制容器。下一步是構(gòu)建一個集中服務(wù),該服務(wù)知道所有容器在群集中的存儲位置。該服務(wù)是SCM。
SCM從所有DataNode定期獲取報告,告知這些節(jié)點上的容器副本及其當(dāng)前狀態(tài)。 SCM可以選擇三個DataNode的集合來存儲新的開放容器,并指示它們相互形成RAFT復(fù)制環(huán)。
SCM還可以了解容器何時變滿,并指示引導(dǎo)副本“關(guān)閉”容器。 SCM還可以檢測復(fù)制的封閉容器下/上的情況,并確保每個封閉容器存在三個副本。
容器+ RAFT + SCM = HDDS!
有了以上三個構(gòu)建塊,就可以完成創(chuàng)建HDDS的所有工作,HDDS是一個沒有全局命名空間的分布式塊存儲層。現(xiàn)在,DataNode被分為三組,每組形成一個Ratis復(fù)制環(huán)。每個環(huán)可以有多個打開的容器。
SCM每30秒從每個DataNode接收一次報告,以通知每個節(jié)點上打開和關(guān)閉的容器副本。根據(jù)此報告,SCM做出決策,例如分配新容器,關(guān)閉打開的容器,在磁盤丟失/數(shù)據(jù)丟失時重新復(fù)制關(guān)閉的容器。
SCM的客戶可以請求分配新塊,然后將塊數(shù)據(jù)寫入分配的容器中??蛻舳诉€可以讀取打開/關(guān)閉容器中的塊并刪除塊。關(guān)鍵是HDDS本身并不關(guān)心單個容器的內(nèi)容。內(nèi)容完全由使用SCM的應(yīng)用程序管理。
添加名稱空間– Ozone Manager
有了HDDS,唯一缺少的要素就是全局鍵值命名空間。這是由OzoneManager提供的。 OM是從鍵名到相應(yīng)的塊集的映射服務(wù)。
客戶端可以將多個塊寫入HDDS,然后提交它們的key-> blocks,將它們原子地映射到OM,以使密鑰在名稱空間中可見。
OM將自己的狀態(tài)存儲在RocksDB數(shù)據(jù)庫中。
HDDS超越Ozone
HDDS可以被其他分布式文件系統(tǒng)實現(xiàn)用作塊存儲層。已經(jīng)討論并可能在將來實現(xiàn)的一些示例:
關(guān)于Cloudera
在 Cloudera,我們相信數(shù)據(jù)可以使今天的不可能,在明天成為可能。我們使人們能夠?qū)?fù)雜的數(shù)據(jù)轉(zhuǎn)換為清晰而可行的洞察力。Cloudera 為任何地方的任何數(shù)據(jù)從邊緣到人工智能提供企業(yè)數(shù)據(jù)云平臺服務(wù)。在開源社區(qū)不懈創(chuàng)新的支持下,Cloudera推動了全球最大型企業(yè)的數(shù)字化轉(zhuǎn)型歷程。
慧都大數(shù)據(jù)專業(yè)團隊為企業(yè)提供Cloudera大數(shù)據(jù)平臺搭建,免費業(yè)務(wù)咨詢,定制開發(fā)等完整服務(wù),快速、輕松、低成本將任何Hadoop集群從試用階段轉(zhuǎn)移到生產(chǎn)階段。
歡迎撥打慧都熱線023-68661681或咨詢慧都在線客服,我們有專業(yè)的大數(shù)據(jù)團隊,為您提供免費大數(shù)據(jù)相關(guān)業(yè)務(wù)咨詢!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn