真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Ozone1.0如何部署

這篇文章主要為大家展示了“Ozone1.0如何部署”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Ozone1.0如何部署”這篇文章吧。

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的雜多網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1、背景簡介

HDFS通過把文件系統(tǒng)元數(shù)據(jù)全部加載到Namenode內(nèi)存中,給客戶端提供了低延遲的元數(shù)據(jù)訪問。由于元數(shù)據(jù)需要全部加載到內(nèi)存,所以一個HDFS集群能支持的最大文件數(shù),受JAVA堆內(nèi)存的限制,上限大概是4億左右個文件。所以HDFS適合大量大文件(幾百兆以上)的集群,如果集群中有非常多的小文件,HDFS的元數(shù)據(jù)訪問性能會受到影響。 Ozone 是一個分布式、多副本的對象存儲系統(tǒng),并針對大數(shù)據(jù)場景進(jìn)行了專門的優(yōu)化。Ozone 主要圍繞可擴(kuò)展性進(jìn)行設(shè)計,目標(biāo)是十億數(shù)量級以上的對象存儲。

2、組件架構(gòu)

Ozone1.0如何部署

2.1 Ozone Manager

2.1.1 基本功能

Ozone Manager(OM)管理 Ozone 的命名空間,提供所有的 Volume, Bucket 和 Key 的新建,更新和刪除操作。

Ozone Manager 只和 Ozone Client 和 Storage Container Manager 通信,并不直接和 Datanode 通信。

Ozone1.0如何部署

當(dāng)向Ozone寫入數(shù)據(jù)時,你需要向OM請求一個塊,OM會返回一個塊并記錄下相關(guān)信息。當(dāng)你想要讀取那個文件時,你也需要先通過OM獲取那個塊的地址。

OM 允許用戶在卷和桶下管理鍵,卷和桶都是命名空間的一部分,也由 OM 管理。

每個卷都是 OM 下的一個獨立命名空間的根,這一點和 HDFS 不同,HDFS 提供的是單個根目錄的文件系統(tǒng)。

與 HDFS 中單根的樹狀結(jié)構(gòu)相比,Ozone 的命名空間是卷的集合,或者可以看作是個森林,因此可以非常容易地部署多個 OM 來進(jìn)行擴(kuò)展。

2.1.2. 元數(shù)據(jù)管理

OM 維護(hù)了卷、桶和鍵的列表。它為每個用戶維護(hù)卷的列表,為每個卷維護(hù)桶的列表,為每個桶維護(hù)鍵的列表。

2.1.3. 單點及高可用

單點OM通過RocksDB來持久化元數(shù)據(jù);

HA模式底層通過 Ratis(實現(xiàn)了Raft協(xié)議) 擴(kuò)展元數(shù)據(jù)的副本數(shù)來實現(xiàn)元數(shù)據(jù)的HA。 Ozone1.0如何部署

2.1.4. Key寫

Ozone1.0如何部署

2.1.5. Key 讀

Ozone1.0如何部署

2.2. Storage Container Manager

SCM是Ozone的block空間管理的leader節(jié)點,主要職責(zé)是創(chuàng)建和管理container,container是Ozone的主要復(fù)制單元。 Ozone1.0如何部署

SCM為Ozone提供多個關(guān)鍵功能,集群管理、證書頒發(fā)、塊管理和副本管理:

2.2.1. 集群管理

SCM負(fù)責(zé)創(chuàng)建Ozone集群,當(dāng)通過init初始化集群時,SCM將創(chuàng)建證書授權(quán)所需的集群標(biāo)識和根證書。 SCM管理著集群中數(shù)據(jù)節(jié)點datanode的生命周期。

2.2.2. 服務(wù)安全管理

SCM的證書授權(quán)為集群中每個服務(wù)頒發(fā)身份證書,這個基礎(chǔ)證書讓服務(wù)在網(wǎng)絡(luò)層更容易啟動mTLS(雙向認(rèn)證),并且塊的基礎(chǔ)token也依賴于這個基礎(chǔ)證書。

2.2.3. 塊管理

SCM是塊管理器,它分配塊并將他們分配給數(shù)據(jù)節(jié)點,客戶端可以直接對這些塊進(jìn)行讀寫操作。

2.2.4. 副本管理

SCM持續(xù)跟蹤所有的塊副本,如果數(shù)據(jù)節(jié)點或者磁盤損壞,SCM會檢測到并會指示數(shù)據(jù)節(jié)點復(fù)制丟失的數(shù)據(jù)塊以確保高可用性。

2.3 Containers

Block是數(shù)據(jù)塊對象,真實存儲用戶的數(shù)據(jù),不由SCM管理。

Container是一個邏輯概念,是由一些相互之間沒有關(guān)系的 Block 組成的集合。

在Ozone中,數(shù)據(jù)是以Container的粒度進(jìn)行副本復(fù)制的,默認(rèn)大小為5G (ozone.scm.container.size),由SCM服務(wù)管理。 Ozone1.0如何部署

Pipeline 來保證 Container 實現(xiàn)想要的副本數(shù)。SCM 中目前支持2種 Pipeline 方式實現(xiàn)多副本,單副本的 Standalone 模式和三副本的 Ratis 方式(ozone.replication)。

當(dāng)Ozone Manager從SCM請求一個新的塊分配時,SCM將識別合適的容器并生成一個包含ContainerId+LocalId的塊id。客戶端將連接到存儲容器的Datanode,Datanode可以根據(jù)LocalId管理分離的塊。 Ozone1.0如何部署

Container 有2種狀態(tài),OPEN 和 CLOSED:

當(dāng)container創(chuàng)建時,它就開始了Open狀態(tài),當(dāng)它寫滿時(默認(rèn)5G),它就會關(guān)閉并且變成CLOSED的狀態(tài),之后便不可修改。 | OPEN | CLOSED | | :------------: | :------------: | | 可變 | 不可變 | |通過ratis復(fù)制 | 使用異步容器copy進(jìn)行復(fù)制| | Raft leader節(jié)點用于數(shù)據(jù)讀寫| 所有節(jié)點都用于讀 |

2.4 Datanodes

存儲所有數(shù)據(jù),客戶端按block寫入數(shù)據(jù),數(shù)據(jù)節(jié)點將這些block聚合到存儲container中, container中包含用戶寫入的數(shù)據(jù)塊和這些塊的元數(shù)據(jù)。

Ozone container存儲容器是一個自包含的超級塊,容器中包含一系列的Block,以及存儲實際數(shù)據(jù)的磁盤文件,是默認(rèn)的存儲容器格式。

Ozone1.0如何部署

當(dāng)客戶端想從Ozone讀取數(shù)據(jù),客戶端向OM發(fā)送數(shù)據(jù)文件的名字,OM會返回組成這個文件的塊列表,一個Ozone塊包含一個container ID 和一個local ID,container ID讓客戶端發(fā)現(xiàn)container的位置,container的相關(guān)信息由SCM提供,在大多數(shù)情況下,container位置由Ozone Manager緩存,并與Ozone塊一起返回。

當(dāng)客戶端找到了container,也就是知道了哪些數(shù)據(jù)節(jié)點包含這些container,客戶端會連接到數(shù)據(jù)節(jié)點并且讀取由container ID:Local ID指定的數(shù)據(jù)流,換句話說,Local ID用作容器的索引,從container中讀取想要的數(shù)據(jù)流。 Ozone1.0如何部署

  • 容器的位置發(fā)現(xiàn)

SCM 如何獲得容器的位置?這一點和現(xiàn)有的 HDFS 十分相似。數(shù)據(jù)節(jié)點會定期發(fā)送類似于塊報告的容器報告,容器報告比塊報告的內(nèi)容簡潔的多,比如,對于一個存儲容量為 196 TB 的集群,Ozone 大概會擁有四萬個容器,相比于 HDFS 的一百五十萬個塊,塊報告數(shù)量縮減為四十分之一。

這種間接管理的方式大大地提高了 Ozone 的擴(kuò)展性,因為 SCM 需要處理的塊數(shù)據(jù)大大減少,且命名服務(wù)(OM)作為一個獨特的服務(wù)主體對于擴(kuò)展 Ozone 具有重要意義。

2.5. Recon

Ozone的監(jiān)控頁面

2.6 S3G

Ozone的s3 compatible REST gateway

3. 基本介紹

3.1.組件架構(gòu)

Ozone 的命名空間由volume組成,同時volume也用作存儲賬戶管理。

Ozone Manager(OM) 管理命名空間,Storage Container Manager(SCM) 管理底層的數(shù)據(jù),而 Recon 是 Ozone 的管理接口。

Ozone1.0如何部署

3.2.邏輯架構(gòu)

Ozone數(shù)據(jù)的邏輯存儲架構(gòu)

Ozone1.0如何部署

  1. Volumes(卷): 類似于用戶賬號,只有管理員可以創(chuàng)建volumes,可以做配額管理,用于存儲buckets,一個volume下可以包含多個buckets。

  2. Buckets(桶): 類似于目錄,用戶可以在自己的卷下創(chuàng)建任意數(shù)量的桶,一個bucket可以包含無數(shù)個keys,buckets不能包含其他buckets,它們之間互不干擾。

  3. Keys(鍵): 類似于文件,位于bucket下,用于讀寫數(shù)據(jù)。

3.3. 端口說明

服務(wù)端口參數(shù)備注
Datanode9858dfs.container.ratis.ipcDatanode節(jié)點
Datanode9859dfs.container.ipcDatanode節(jié)點
SCM9860ozone.scm.client.address
SCM9861ozone.scm.datanode.addressscm和datanode通信端口
OM9862ozone.om.address
SCM9863ozone.scm.block.client.port
OM9874ozone.om.http-addressOM web頁面
SCM9876ozone.scm.http-addressSCM web頁面
S3G9878ozone.s3g.http-addressS3Gateway
Datanode9882hdds.datanode.http-addressDatanode節(jié)點
Recon9888ozone.recon.http-addressRecon web頁面
Recon9891ozone.recon.address默認(rèn)無,Datanode節(jié)點必配參數(shù),以便Recon可以監(jiān)測到Datanode服務(wù)

4.安裝部署

OZONE和HDFS不要部署在同一個節(jié)點上,因為OZONE的環(huán)境變量會和HADOOP共用,服務(wù)啟動會沖突,可以修改環(huán)境變量相關(guān)腳本進(jìn)行更改。

4.1.基礎(chǔ)環(huán)境

4.1.1.配置/etc/hosts

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.40.21 ozom-1
172.16.40.22 ozom-2
172.16.40.23 ozom-3
172.16.40.11 ozdn-1
172.16.40.12 ozdn-2
172.16.40.13 ozdn-3

4.1.2.關(guān)閉防火墻

# systemctl stop firewalld && systemctl disable firewalld

4.1.3.關(guān)閉selinux

# setenforce 0 && sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

4.1.4.時間同步

ntpd

4.1.5.創(chuàng)建用戶

# useradd hadoop

4.1.6.配置互信

4.2.單點部署

HostnameIpService
ozom-1172.16.40.21OM、SCM、DataNode
ozom-2172.16.40.22DataNode
ozom-3172.16.40.23DataNode
ozdn-1172.16.40.11DataNode
ozdn-2172.16.40.12DataNode
ozdn-3172.16.40.13DataNode

4.2.1.創(chuàng)建目錄

創(chuàng)建Datanode的數(shù)據(jù)目錄 掛載到磁盤上

# mkdir -p /data/disk{1..2}
# chown -R hadoop:hadoop /data/disk{1..2}

創(chuàng)建ozone相關(guān)目錄

# mkdir -p /opt/dlw/{conf,soft,logs,metadata,tmp}
# chown -R hadoop:hadoop /opt/dlw

$ mkdir -p /opt/dlw/logs/ozone
$ mkdir -p /opt/dlw/tmp/run

$ mkdir -p /opt/dlw/metadata/ozone/{om,node,recon,ratis,scm}

4.2.2.環(huán)境變量

1、配置java

所有節(jié)點都需配置

配置ozone

export OZONE_HOME=/opt/dlw/soft/ozone
export PATH=$OZONE_HOME/sbin:$OZONE_HOME/bin:$PATH
export HADOOP_OPTS="-XX:ParallelGCThreads=8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+CMSParallelRemarkEnabled"
export HADOOP_PID_DIR=/opt/dlw/tmp/run
export HADOOP_LOG_DIR=/opt/dlw/logs/hadoop

4.2.3.拷貝軟件

Ozone 下載的二進(jìn)制包,直接解壓使用,拷貝至所有節(jié)點

$ tar -zxvf hadoop-ozone-1.0.0.tar.gz -C /opt/dlw/soft/
$ cd /opt/dlw/soft/
$ mv ozone-1.0.0 ozone

4.2.4.修改配置

生成配置

$ ozone genconf $OZONE_HOME/etc/hadoop

修改配置

$ vim $OZONE_HOME/etc/hadoop/ozone-site.xml


    
        ozone.om.address
        ozom-1
    

    
        ozone.om.http-address
        ozom-1:9874
    

    
       ozone.om.db.dirs
       /opt/dlw/metadata/ozone/om
    

    
        ozone.metadata.dirs
        /opt/dlw/metadata/ozone
    

    
        ozone.om.ratis.enable
        false
    

    
        ozone.om.service.ids
        omdlw001
    

    
       ozone.om.nodes.omdlw001
       om1,om2,om3
    

    
       ozone.om.address.omdlw001.om1
       ozom-1
    

    
       ozone.om.address.omdlw001.om2
       ozom-2
    

    
       ozone.om.address.omdlw1.om3
       ozom-3
    

    
        ozone.scm.client.address
        ozom-1
    

    
        ozone.scm.names
        ozom-1
    

    
        ozone.scm.container.size
        5GB
    

    
       ozone.scm.db.dirs
       /opt/dlw/metadata/ozone/scm
    

    
       ozone.scm.pipeline.owner.container.count
       3
    

    
        ozone.scm.datanode.id.dir
        /opt/dlw/metadata/ozone/node
    

    
       ozone.scm.block.client.address
       ozom-1
    

    
       ozone.scm.datanode.address
       ozom-1
    

    
       hdds.datanode.dir
       /data/disk1,/data/disk2
    

    
       ozone.recon.db.dir
       /opt/dlw/metadata/ozone/recon
    

    
       ozone.recon.address
       ozom-1:9891
    

    
       recon.om.snapshot.task.interval.delay
       1m
    

    
       dfs.container.ratis.datanode.storage.dir
       /opt/dlw/metadata/ozone/ratis
    

$ vim $OZONE_HOME/etc/hadoop/workers
ozom-1
ozom-2
ozom-3
ozdn-1
ozdn-2
ozdn-3

4.2.5.啟動服務(wù)

  • scm

$ ozone scm --init
$ ozone --daemon start scm
  • om

$ ozone om --init
$ ozone --daemon start om
  • datanode –所有datanode節(jié)點

$ ozone --daemon start datanode
  • recon

$ ozone --daemon start recon
  • s3g

$ ozone --daemon start s3g

4.2.6.校檢驗證

$ jps
6721 ReconServer
7589 Gateway
4934 StorageContainerManagerStarter
5479 OzoneManagerStarter
5705 HddsDatanodeService
7662 Jps
  • scm

Ozone1.0如何部署

  • om

Ozone1.0如何部署

  • s3g

Ozone1.0如何部署

  • recon

Ozone1.0如何部署

4.3.高可用部署

HostnameIpService
ozom-1172.16.40.21OM、SCM、DataNode
ozom-2172.16.40.22OM
ozom-3172.16.40.23OM
ozdn-1172.16.40.11DataNode
ozdn-2172.16.40.12DataNode
ozdn-3172.16.40.13DataNode

高可用目前只有OM服務(wù)支持HA,SCM尚不支持: 單點OM通過RocksDB來持久化元數(shù)據(jù); 高可用模式底層通過 Ratis(實現(xiàn)了Raft協(xié)議) 擴(kuò)展元數(shù)據(jù)的副本數(shù)來實現(xiàn)元數(shù)據(jù)的HA。

Ozone1.0如何部署

修改配置,開啟OM的HA模式

    
        ozone.om.ratis.enable
        true
    

一個ozone-site.xml支持多個Ozone HA配置,為了在可用的HA集群之間進(jìn)行選擇,每個集群都需要一個邏輯名稱,該名稱可以解析為OM的IP地址(或域名)。

   
       ozone.om.service.ids
       cluster1,cluster2
   

此處只有一個集群,自定義一個集群名稱omdlw001

    
        ozone.om.service.ids
        omdlw001
    

對于這個集群可以定義他的所有om,并對每個om的節(jié)點進(jìn)行配置

    
       ozone.om.nodes.omdlw001
       om1,om2,om3
    

    
       ozone.om.address.omdlw001.om1
       ozom-1
    

    
       ozone.om.address.omdlw001.om2
       ozom-2
    

    
       ozone.om.address.omdlw001.om3
       ozom-3
    

在三個om節(jié)點上都啟動om服務(wù),但是必須得注意,高可用的om服務(wù)不能與datanode服務(wù)同處于同一個節(jié)點,因為2者都使用ratis會沖突。

$ ozone om --init
$ ozone --daemon start om

以上是“Ozone1.0如何部署”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


網(wǎng)頁名稱:Ozone1.0如何部署
本文鏈接:http://weahome.cn/article/jsdico.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部