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