成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

下一代大數(shù)據(jù)存儲(chǔ)Ozone,終于有人講明白了

存儲(chǔ)
Ozone能夠輕松管理小文件和大文件,是一個(gè)分布式Key-Value對(duì)象存儲(chǔ)系統(tǒng)。

HDFS是業(yè)界默認(rèn)的大數(shù)據(jù)存儲(chǔ)系統(tǒng),在業(yè)界的大數(shù)據(jù)集群中有非常廣泛的使用。HDFS集群有著很高的穩(wěn)定性且易擴(kuò)展得益于它較簡單的構(gòu)架,但包含幾千個(gè)節(jié)點(diǎn),保存上百拍比特(PB)數(shù)據(jù)的集群也不鮮見。我們簡單來回顧一下HDFS的構(gòu)架,如圖1所示。

圖片

▲圖1 HDFS構(gòu)架

HDFS通過把文件系統(tǒng)元數(shù)據(jù)全部加載到數(shù)據(jù)節(jié)點(diǎn)Namenode內(nèi)存中,給客戶端提供了低延遲的元數(shù)據(jù)訪問。由于元數(shù)據(jù)需要全部加載到內(nèi)存,所以一個(gè)HDFS集群能支持的最大文件數(shù),受Java堆內(nèi)存的限制,上限大概是4億~5億個(gè)文件。所以HDFS適合大量大文件[幾百兆字節(jié)(MB)以上]的集群,如果集群中有非常多的小文件,HDFS的元數(shù)據(jù)訪問性能會(huì)受到影響。雖然可以通過各種Federation技術(shù)來擴(kuò)展集群的節(jié)點(diǎn)規(guī)模,但單個(gè)HDFS集群仍然沒法很好地解決小文件的限制。

基于這些背景,Hadoop社區(qū)推出了新的分布式存儲(chǔ)系統(tǒng)Ozone。Ozone能夠輕松管理小文件和大文件,是一個(gè)分布式Key-Value對(duì)象存儲(chǔ)系統(tǒng)。

01基本概念

對(duì)象存儲(chǔ)是一種數(shù)據(jù)存儲(chǔ),每個(gè)數(shù)據(jù)單元存儲(chǔ)為離散單元(稱為對(duì)象)。對(duì)象可以是任何類型、任何大小的數(shù)據(jù)。語義上,對(duì)象存儲(chǔ)中的所有對(duì)象都存儲(chǔ)在單個(gè)平面地址空間中,沒有文件系統(tǒng)的層次結(jié)構(gòu)。實(shí)現(xiàn)中,為了支持多用戶及用戶隔離,更好地管理和使用對(duì)象,通常對(duì)象存儲(chǔ)也會(huì)在平面的地址空間中劃分出幾個(gè)層次。這些層次是由對(duì)象存儲(chǔ)的實(shí)現(xiàn)確定的,每個(gè)層次都有特定的語義,用戶不能更改。

Ozone的對(duì)象層次分三個(gè)層次,從上到下依次是Volume(卷),Bucket(存儲(chǔ)桶)和Object(對(duì)象),如圖2所示。

圖片

▲圖2 Ozone的對(duì)象層次

1、Volume(卷)

Volume類似Amazon S3中用戶賬戶的概念,是用戶的Home目錄。Volume只有系統(tǒng)管理員才可以創(chuàng)建,是存儲(chǔ)管理的單位,比如配額管理。Ozone建議系統(tǒng)管理員為每個(gè)用戶都單獨(dú)創(chuàng)建獨(dú)立的Volume。Volume用來存儲(chǔ)Bucket,目前一個(gè)Volume下面可以包含任意多個(gè)Bucket。

2、Bucket(存儲(chǔ)桶)

存儲(chǔ)桶是對(duì)象的容器,概念類似于S3的Bucket,或者Azure中的Container。存儲(chǔ)桶創(chuàng)建于Volume下,只能屬于一個(gè)Volume,創(chuàng)建后歸屬關(guān)系不可更改,也不支持更改存儲(chǔ)桶的名字。Amazon S3的存儲(chǔ)桶名稱是全局唯一的,并且命名空間由所有AWS賬戶共享。這意味著,在創(chuàng)建存儲(chǔ)桶之后,任何AWS區(qū)域中的其他AWS賬戶均不能使用該存儲(chǔ)桶的名稱,直至刪除該存儲(chǔ)桶。在Ozone中,存儲(chǔ)桶名稱只需要確保在本Volume內(nèi)部是唯一的。不同的Volume可以創(chuàng)建名稱相同的存儲(chǔ)桶。

3、Object(對(duì)象)

對(duì)象存儲(chǔ)在存儲(chǔ)桶中,是鍵+值的存儲(chǔ)。鍵是對(duì)象的名稱,值是對(duì)象的內(nèi)容。對(duì)象的名稱在所屬存儲(chǔ)桶中必須是唯一的。對(duì)象有自己的元數(shù)據(jù),包括值的大小、創(chuàng)建時(shí)間、最后一次修改時(shí)間、備份數(shù)、訪問控制列表ACL等。對(duì)象的大小沒有限制。

Ozone支持URL以虛擬主機(jī)方式的訪問Ozone的對(duì)象。它采用如下格式:

[scheme][bucket.volume.server:port]/key

?其中,scheme可以選:1)o3fs,通過RPC協(xié)議訪問Ozone。2)HTTP/HTTPS,通過HTTP協(xié)議訪問Ozone REST API。當(dāng)scheme省略時(shí),默認(rèn)使用RPC協(xié)議。server:port是Ozone Manager的地址。如果沒有指定,則使用集群的配置文件ozone-site.xml中“ozone.om.address”值。如果配置文件中也沒有定義,則默認(rèn)使用“l(fā)ocalhost:9862”。

02技術(shù)架構(gòu)

?Ozone技術(shù)構(gòu)架分為三個(gè)部分:Ozone Manager,統(tǒng)一的元數(shù)據(jù)管理;Storage Container Manager,數(shù)據(jù)塊分配和數(shù)據(jù)節(jié)點(diǎn)管理;Datanode,數(shù)據(jù)節(jié)點(diǎn),數(shù)據(jù)的最終存放處,如圖3所示。類比HDFS的構(gòu)架,可以看到原來的Namenode的功能,現(xiàn)在由Ozone Manager和Storage Container Manage分別進(jìn)行管理。對(duì)象元數(shù)據(jù)空間和數(shù)據(jù)分布分開管理,有利于兩者的獨(dú)立按需擴(kuò)展,避免之前Namenode單節(jié)點(diǎn)的壓力。

圖片

▲圖3 Ozone技術(shù)構(gòu)架

Ozone主要模塊和功能如下。

1、Ozone Manager(OM)

Ozone Manager是管理Ozone的命名空間,提供所有的Volume(卷)、Bucket(存儲(chǔ)桶)和Key(鍵)的新建、更新和刪除操作。它存儲(chǔ)了Ozone的元數(shù)據(jù)信息,這些元數(shù)據(jù)信息包括Volumes、Buckets和Keys,底層通過RATIS(實(shí)現(xiàn)了RAFT協(xié)議)擴(kuò)展元數(shù)據(jù)的副本數(shù)來實(shí)現(xiàn)元數(shù)據(jù)的HA。Ozone Manager只和Ozone Client和Storage Container Manager通信,并不直接和Datanode通信。Ozone Manager將命名空間的元數(shù)據(jù)存儲(chǔ)在RocksDB中,避免了HDFS中需要將所有元數(shù)據(jù)都保留在內(nèi)存,從而經(jīng)常會(huì)受到小文件問題的困擾。RocksDB是Facebook基于LevelDB開發(fā)的一個(gè)本地Key-Value存儲(chǔ)引擎,尤其對(duì)于SSD有很多的優(yōu)化和改進(jìn),提供高吞吐量的讀寫操作。

2、Storage Container Manager(SCM)

SCM類似HDFS中的Block Manager,管理Container,寫Pipelines和Datanode,為Ozone Manager提供Block和Container的操作和信息。SCM也監(jiān)聽Datanode發(fā)來的心跳信息,作為Datanode Manager的角色,保證和維護(hù)集群所需的數(shù)據(jù)冗余級(jí)別。SCM和Ozone Client之間沒有通信。

3、Block、Container和Pipeline

Block是數(shù)據(jù)塊對(duì)象,真實(shí)存儲(chǔ)用戶的數(shù)據(jù)。Container中的一條記錄是一個(gè)Block的信息,每個(gè)Block在Container里面有且僅有一條記錄,如圖4所示,在Ozone中,數(shù)據(jù)是以Container為粒度進(jìn)行副本復(fù)制的。SCM中目前支持2種Pipeline方式,由單Datanode節(jié)點(diǎn)組成的Standalone讀Pipeline,和由三個(gè)Datanode節(jié)點(diǎn)組成的Apache RATIS寫Pipeline。Container有2種狀態(tài),OPEN和CLOSED。當(dāng)一個(gè)Container是OPEN狀態(tài)時(shí),可以往里面寫入新的Block。當(dāng)一個(gè)Container達(dá)到它預(yù)定的大小時(shí)(默認(rèn)5GB),它從OPEN狀態(tài)轉(zhuǎn)換成CLOSED狀態(tài)。一個(gè)Closed Container是不可修改的。

圖片

▲圖4 Datanode Container內(nèi)部結(jié)構(gòu)

由三個(gè)Datanode節(jié)點(diǎn)組成的Apache RATIS寫Pipeline,保證數(shù)據(jù)一旦落盤,后續(xù)總能讀到最新的數(shù)據(jù),數(shù)據(jù)是強(qiáng)一致的,并且每份數(shù)據(jù)有3個(gè)備份,不用擔(dān)心由于單個(gè)磁盤故障導(dǎo)致的數(shù)據(jù)丟失,如圖5所示。

圖片

▲圖5 RATIS寫Pipeline

4、Datanode

Datanode是Ozone的數(shù)據(jù)節(jié)點(diǎn),以Container為基本存儲(chǔ)單元維護(hù)每個(gè)Container內(nèi)部的數(shù)據(jù)映射關(guān)系,并定時(shí)向SCM發(fā)送心跳節(jié)點(diǎn)、匯報(bào)節(jié)點(diǎn)的信息、管理Container的信息和Pipeline的信息。當(dāng)一個(gè)Container大小超過預(yù)定大小的90%時(shí)或者寫操作失敗時(shí),Datanode會(huì)發(fā)送Container Close命令給SCM,把Container的狀態(tài)從OPEN轉(zhuǎn)變成CLOSED。或者當(dāng)Pipeline出錯(cuò)時(shí),發(fā)送Pipeline Close命令給SCM,把Pipeline從OPEN狀態(tài)轉(zhuǎn)為CLOSED狀態(tài)。

5、分層管理

Ozone分層結(jié)構(gòu)使得Ozone Manager、Storage Container Manager和Datanode可按需獨(dú)立擴(kuò)展。對(duì)于Ozone提供的語義,也是分層管理的,如圖6所示。

圖片

▲圖6 Ozone語義與對(duì)應(yīng)的管理模塊

?6、對(duì)象創(chuàng)建

當(dāng)Ozone Client(客戶端)需要?jiǎng)?chuàng)建并且寫入一個(gè)新對(duì)象時(shí),客戶端需要和Ozone Manager和Datanode直接打交道,具體過程如圖7所示。

圖片

▲圖7 創(chuàng)建Ozone新對(duì)象

1)Ozone客戶端鏈接Ozone Manager,提供需要?jiǎng)?chuàng)建的對(duì)象信息,包括對(duì)象的名稱、數(shù)據(jù)的大小、備份數(shù)和其他用戶自定義的對(duì)象屬性。

2)Ozone Manager收到Ozone客戶端的請(qǐng)求后,和SCM通信,請(qǐng)求SCM尋找能夠容納數(shù)據(jù)的處于OPEN狀態(tài)的Container,然后在找到的Container中分配足夠數(shù)量的Block。

3)SCM將新對(duì)象數(shù)據(jù)將要寫入的Container、Block和Container所在的Pipeline的三個(gè)Datanode的信息列表返回給Ozone Manager。

4)Ozone Manager將收到SCM返回的信息,返回給客戶端。

5)客戶端得到Datanode列表信息之后,和第一個(gè)Datanode(Raft Pipeline Leader)建立通信,將數(shù)據(jù)寫入Datanode的Container。

6)客戶端完成數(shù)據(jù)寫入后,連接Ozone Manager,確認(rèn)數(shù)據(jù)已經(jīng)更新完成,Ozone Manager更新對(duì)象的元數(shù)據(jù),記錄對(duì)象數(shù)據(jù)所在的Container和Block的信息。至此,新的對(duì)象創(chuàng)建完成。之后,其他的客戶端就可以訪問這個(gè)對(duì)象了。

7、對(duì)象讀取對(duì)象讀取的過程相對(duì)簡單,類似于HDFS的文件讀,如圖8所示。

圖片

▲圖8 讀取Ozone對(duì)象

1)Ozone Client(客戶端)和Ozone Manager通信,制定要讀取的對(duì)象Key (/volume/bucket/key)。

2)Ozone Manager在元數(shù)據(jù)庫中查找對(duì)應(yīng)的對(duì)象,返回對(duì)象數(shù)據(jù)所在的Container和Block信息,包括Container所在的Datanode列表信息給Ozone Client(客戶端)。

3)Ozone支持Data locality。如果Ozone Client(客戶端)運(yùn)行在集群中的某個(gè)節(jié)點(diǎn)上,Ozone Manager會(huì)返回按照網(wǎng)絡(luò)拓?fù)渚嚯x排序的Datanode列表。Ozone Client(客戶端)可以選擇第一個(gè)Datanode節(jié)點(diǎn)(本地節(jié)點(diǎn)),也是離Client(客戶端)最近的節(jié)點(diǎn)來讀取數(shù)據(jù),節(jié)省數(shù)據(jù)讀取的網(wǎng)絡(luò)傳輸時(shí)間。

責(zé)任編輯:張燕妮 來源: 數(shù)倉寶貝庫
相關(guān)推薦

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術(shù)

2022-10-14 18:22:18

KafkaHiveZooKeeper

2021-12-03 18:25:56

數(shù)據(jù)指標(biāo)本質(zhì)

2021-09-03 18:38:13

數(shù)據(jù)湖數(shù)據(jù)倉庫

2022-04-27 18:25:02

數(shù)據(jù)采集維度

2022-01-05 18:27:44

數(shù)據(jù)挖掘工具

2022-04-22 11:26:55

數(shù)據(jù)管理架構(gòu)

2022-04-12 18:29:41

元數(shù)據(jù)系統(tǒng)架構(gòu)

2021-06-29 11:21:41

數(shù)據(jù)安全網(wǎng)絡(luò)安全黑客

2022-06-26 18:52:02

Hadoop大數(shù)據(jù)系統(tǒng)

2022-06-21 11:14:51

大數(shù)據(jù)系統(tǒng)架構(gòu)

2021-06-13 12:03:46

SaaS軟件即服務(wù)

2021-10-09 00:02:04

DevOps敏捷開發(fā)

2022-03-27 20:32:28

Knative容器事件模型

2020-08-17 08:17:00

大數(shù)據(jù)人工智能技術(shù)

2022-03-15 17:12:03

大數(shù)據(jù)機(jī)器學(xué)習(xí)人工智能

2021-10-07 20:24:16

AIBI大數(shù)據(jù)

2025-05-29 01:00:00

數(shù)據(jù)架構(gòu)大數(shù)據(jù)數(shù)據(jù)湖

2021-12-07 18:24:26

數(shù)據(jù)安全

2022-05-01 22:09:27

數(shù)據(jù)模型大數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美日韩亚洲视频 | 欧美日韩不卡合集视频 | 精国产品一区二区三区四季综 | 精品国产一区二区三区免费 | 日韩av一区二区在线观看 | 一区二区国产精品 | 免费在线观看一区二区 | 国产精品欧美日韩 | 日韩小视频在线 | 91极品欧美视频 | 久久综合久色欧美综合狠狠 | 日韩一区二区av | 亚洲一区视频在线 | 国产日韩久久 | 免费日韩av | 久久精品91久久久久久再现 | 日本在线视 | 国产福利在线看 | 日本精品视频一区二区 | 亚洲一区二区久久久 | 超碰av人人 | 成人黄视频在线观看 | 天堂资源| 亚洲国产一区二区三区四区 | 日韩免费av一区二区 | 亚洲精品久久久久久久久久久 | 亚洲在线一区 | 成人av网站在线观看 | 日韩a在线 | 久在线| 精品久久国产 | 草久视频| 欧美日韩国产综合在线 | 国产精品免费观看 | 国产日产精品一区二区三区四区 | 中文字幕精品视频 | 99re在线视频观看 | 九九久久精品 | 国产一区二区观看 | 欧美一级免费看 | 国产亚洲一区二区三区 |