物理集群上 Ozone 的安装

    1. Ozone Manager - 管理 Ozone 命名空间的服务,负责所有对卷、桶和键的操作。
    2. Storage Container Manager - Ozone 中块的管理者,Ozone Manager 从 SCM 请求块,然后用户向块写入数据。
    3. Datanodes - Ozone 的 Datanode 代码既可以运行在 HDFS 的 Datanode 内,也可以独立部署成单独的进程。
    • 将 ozone-<version> 安装包解压到目标目录,因为 Ozone 的 jar 包需要部署到集群的所有机器上,所以你需要在所有机器上进行此操作。

    • Ozone 依赖名为 的配置文件, 运行下面的命令可以在指定目录生成名为 ozone-site.xml 的配置文件模板,然后你可以将参数替换为合适的值。

    我们来看看生成的文件(ozone-site.xml)中都有哪些参数,以及它们是如何影响 ozone 的。当各个参数都配置了合适的值之后,需要把该文件拷贝到 ozone directory/etc/hadoop

    示例如下:

    1. <property>
    2. <name>ozone.metadata.dirs</name>
    3. <value>/data/disk1/meta</value>
    4. </property>
    • ozone.scm.names Storage container manager(SCM) 提供 ozone 使用的分布式块服务,Datanode 通过这个参数来连接 SCM 并向 SCM 发送心跳。Ozone 目前尚未支持 SCM 的 HA,ozone.scm.names 只需配置单个 SCM 地址即可。

    示例如下:

    1. <property>
    2. <name>ozone.scm.names</name>
    3. </property>
    • ozone.scm.datanode.id.dir 每个 Datanode 会生成一个唯一 ID,叫做 Datanode ID。Datanode ID 会被写入此参数所指定路径下名为 datanode.id 的文件中,如果该路径不存在,Datanode 会自动创建。

    示例如下:

    1. <property>
    2. <name>ozone.om.address</name>
    3. <value>ozonemanager.hadoop.apache.org</value>
    4. </property>

    在启动 Ozone 集群之前,需要依次初始化 SCM 和 OM。

    1. ozone scm --init

    这条命令会使 SCM 创建集群 ID 并初始化它的状态。 init 命令和 Namenode 的 format 命令类似,只需要执行一次,SCM 就可以在磁盘上准备好正常运行所需的数据结构。

    SCM 启动之后,我们就可以创建对象存储空间,命令如下:

    OM 初始化完成之后,就可以启动 OM 服务了:

    1. ozone --daemon start om

    接下来启动 Datanode,在每个 Datanode 上运行下面的命令:

    现在 SCM、OM 和所有的 Datanode 都已启动并运行。

    恭喜!你成功地搭建了一个完整的 ozone 集群。

    如果你想简化操作,可以直接运行:

    1. ozone scm --init
    2. ozone om --init
    3. start-ozone.sh

    这么做的前提是,workers 文件已经正确编写,并且配置好了到各个 Datanode 的 ssh,这和 HDFS 的配置方式相同,具体方法请查看 HDFS 文档。