亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ozone1.0如何部署

發布時間:2021-12-29 14:43:42 來源:億速云 閱讀:649 作者:小新 欄目:大數據

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

1、背景簡介

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

2、組件架構

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如何部署

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

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

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

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

2.1.2. 元數據管理

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

2.1.3. 單點及高可用

單點OM通過RocksDB來持久化元數據;

HA模式底層通過 Ratis(實現了Raft協議) 擴展元數據的副本數來實現元數據的HA。 Ozone1.0如何部署

2.1.4. Key寫

Ozone1.0如何部署

2.1.5. Key 讀

Ozone1.0如何部署

2.2. Storage Container Manager

SCM是Ozone的block空間管理的leader節點,主要職責是創建和管理container,container是Ozone的主要復制單元。 Ozone1.0如何部署

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

2.2.1. 集群管理

SCM負責創建Ozone集群,當通過init初始化集群時,SCM將創建證書授權所需的集群標識和根證書。 SCM管理著集群中數據節點datanode的生命周期。

2.2.2. 服務安全管理

SCM的證書授權為集群中每個服務頒發身份證書,這個基礎證書讓服務在網絡層更容易啟動mTLS(雙向認證),并且塊的基礎token也依賴于這個基礎證書。

2.2.3. 塊管理

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

2.2.4. 副本管理

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

2.3 Containers

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

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

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

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

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

Container 有2種狀態,OPEN 和 CLOSED:

當container創建時,它就開始了Open狀態,當它寫滿時(默認5G),它就會關閉并且變成CLOSED的狀態,之后便不可修改。 | OPEN | CLOSED | | :------------: | :------------: | | 可變 | 不可變 | |通過ratis復制 | 使用異步容器copy進行復制| | Raft leader節點用于數據讀寫| 所有節點都用于讀 |

2.4 Datanodes

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

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

Ozone1.0如何部署

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

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

  • 容器的位置發現

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

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

2.5. Recon

Ozone的監控頁面

2.6 S3G

Ozone的s3 compatible REST gateway

3. 基本介紹

3.1.組件架構

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

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

Ozone1.0如何部署

3.2.邏輯架構

Ozone數據的邏輯存儲架構

Ozone1.0如何部署

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

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

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

3.3. 端口說明

服務端口參數備注
Datanode9858dfs.container.ratis.ipcDatanode節點
Datanode9859dfs.container.ipcDatanode節點
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節點
Recon9888ozone.recon.http-addressRecon web頁面
Recon9891ozone.recon.address默認無,Datanode節點必配參數,以便Recon可以監測到Datanode服務

4.安裝部署

OZONE和HDFS不要部署在同一個節點上,因為OZONE的環境變量會和HADOOP共用,服務啟動會沖突,可以修改環境變量相關腳本進行更改。

4.1.基礎環境

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.關閉防火墻

# systemctl stop firewalld && systemctl disable firewalld

4.1.3.關閉selinux

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

4.1.4.時間同步

ntpd

4.1.5.創建用戶

# 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.創建目錄

創建Datanode的數據目錄 掛載到磁盤上

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

創建ozone相關目錄

# 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.環境變量

1、配置java

所有節點都需配置

配置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 下載的二進制包,直接解壓使用,拷貝至所有節點

$ 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
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
    <property>
        <name>ozone.om.address</name>
        <value>ozom-1</value>
    </property>

    <property>
        <name>ozone.om.http-address</name>
        <value>ozom-1:9874</value>
    </property>

    <property>
       <name>ozone.om.db.dirs</name>
       <value>/opt/dlw/metadata/ozone/om</value>
    </property>

    <property>
        <name>ozone.metadata.dirs</name>
        <value>/opt/dlw/metadata/ozone</value>
    </property>

    <property>
        <name>ozone.om.ratis.enable</name>
        <value>false</value>
    </property>

    <property>
        <name>ozone.om.service.ids</name>
        <value>omdlw001</value>
    </property>

    <property>
       <name>ozone.om.nodes.omdlw001</name>
       <value>om1,om2,om3</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw001.om1</name>
       <value>ozom-1</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw001.om2</name>
       <value>ozom-2</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw1.om3</name>
       <value>ozom-3</value>
    </property>

    <property>
        <name>ozone.scm.client.address</name>
        <value>ozom-1</value>
    </property>

    <property>
        <name>ozone.scm.names</name>
        <value>ozom-1</value>
    </property>

    <property>
        <name>ozone.scm.container.size</name>
        <value>5GB</value>
    </property>

    <property>
       <name>ozone.scm.db.dirs</name>
       <value>/opt/dlw/metadata/ozone/scm</value>
    </property>

    <property>
       <name>ozone.scm.pipeline.owner.container.count</name>
       <value>3</value>
    </property>

    <property>
        <name>ozone.scm.datanode.id.dir</name>
        <value>/opt/dlw/metadata/ozone/node</value>
    </property>

    <property>
       <name>ozone.scm.block.client.address</name>
       <value>ozom-1</value>
    </property>

    <property>
       <name>ozone.scm.datanode.address</name>
       <value>ozom-1</value>
    </property>

    <property>
       <name>hdds.datanode.dir</name>
       <value>/data/disk1,/data/disk2</value>
    </property>

    <property>
       <name>ozone.recon.db.dir</name>
       <value>/opt/dlw/metadata/ozone/recon</value>
    </property>

    <property>
       <name>ozone.recon.address</name>
       <value>ozom-1:9891</value>
    </property>

    <property>
       <name>recon.om.snapshot.task.interval.delay</name>
       <value>1m</value>
    </property>

    <property>
       <name>dfs.container.ratis.datanode.storage.dir</name>
       <value>/opt/dlw/metadata/ozone/ratis</value>
    </property>

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

4.2.5.啟動服務

  • scm

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

$ ozone om --init
$ ozone --daemon start om
  • datanode –所有datanode節點

$ 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服務支持HA,SCM尚不支持: 單點OM通過RocksDB來持久化元數據; 高可用模式底層通過 Ratis(實現了Raft協議) 擴展元數據的副本數來實現元數據的HA。

Ozone1.0如何部署

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

    <property>
        <name>ozone.om.ratis.enable</name>
        <value>true</value>
    </property>

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

   <property>
       <name>ozone.om.service.ids</name>
       <value>cluster1,cluster2</value>
   </property>

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

    <property>
        <name>ozone.om.service.ids</name>
        <value>omdlw001</value>
    </property>

對于這個集群可以定義他的所有om,并對每個om的節點進行配置

    <property>
       <name>ozone.om.nodes.omdlw001</name>
       <value>om1,om2,om3</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw001.om1</name>
       <value>ozom-1</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw001.om2</name>
       <value>ozom-2</value>
    </property>

    <property>
       <name>ozone.om.address.omdlw001.om3</name>
       <value>ozom-3</value>
    </property>

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

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

以上是“Ozone1.0如何部署”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節
推薦閱讀:
  1. sybase部署
  2. Django部署

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

霍城县| 游戏| 霍邱县| 偃师市| 阳信县| 木里| 武冈市| 德令哈市| 海晏县| 怀远县| 锡林浩特市| 志丹县| 开原市| 兴业县| 泸州市| 晴隆县| 晋宁县| 黄龙县| 洪江市| 漳州市| 郑州市| 万荣县| 灵丘县| 河西区| 易门县| 三明市| 吴桥县| 四会市| 东台市| 手机| 靖西县| 三亚市| 龙海市| 张家口市| 老河口市| 耒阳市| 西宁市| 甘孜| 家居| 高碑店市| 卢氏县|