边城

软件就是驱动世界,改造世界

欢迎来到边城客栈


Ozone高可用搭建测试

前言

   大数据对实时性数据要求越来越高,以往的拉姆达n+1的架构,在很多业务场景中已经不再适用。近几年湖仓一体被提上日程、其中数据湖为最重要的一环、譬如iceberg、hudi、
delta lake诸多优秀的数据湖框架应用而生。数据湖可以做到近实时、延迟可以降低到分钟级别。
   但是数据湖使用过程中小文件是系统最头疼的一个环节、众所周知小文件对于HDFS是最大的诟病。因此对象存储如雨后春笋一般大量涌现、先后有腾讯云对象存储、
百度云对象存储、阿里云等等。这些均为云厂商、社区可扩展对象存储并不多、其中以Ozone(HDDS),由Hadoop原创团队+腾讯研发团队共同维护,基于Apache的背景、发展前景非常不错。
   Ozone最新的1.2.1支持SCM(前文已经有介绍)和OM(前文已经有介绍)高可用。本文讲解基本的Ozone 高可用的搭建。希望对读者有一定的启发。

角色和服务器分配

机器角色分配

服务器主机名 服务器ip地址 角色
jykj0.yarn.com 10.10.2.101 OM/SCM/RECON(监控页面)
jykj1.yarn.com 10.10.2.102 OM/SCM
jykj2.yarn.com 10.10.2.103 OM/SCM
jykj3.yarn.com 10.10.2.104 DataNode
jykj4.yarn.com 10.10.2.105 DataNode

核心配置文件

分发配置文件到所有的 /opt/ozone/etc/hadoop目录下,覆盖之前的配置文件,本文中提及的HADOOP_CONF 和 HADOOP_HOME 不再指导读者配置,本文默认读者有Hadoop基础知识.

  • ozone-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property><name>hdds.container.report.interval</name><value>60s</value></property>
<property><name>ozone.scm.nodes.scmservice</name><value>scm1,scm2,scm3</value></property>
<property><name>ozone.recon.https-address</name><value>10.10.2.101:9889</value></property>
<property><name>ozone.replication</name><value>1</value></property>
<property><name>ozone.scm.address.scmservice.scm2</name><value>jykj1.yarn.com</value></property>
<property><name>ozone.scm.address.scmservice.scm3</name><value>jykj2.yarn.com</value></property>
<property><name>ozone.scm.address.scmservice.scm1</name><value>jykj0.yarn.com</value></property>
<property><name>hdds.scmclient.max.retry.timeout</name><value>30s</value></property>
<property><name>ozone.scm.primordial.node.id</name><value>scm1</value></property>
<property><name>ozone.recon.http-address</name><value>192.168.149.101:9888</value></property>
<property><name>ozone.om.ratis.enable</name><value>true</value></property>
<property><name>ozone.scm.service.ids</name><value>scmservice</value></property>
<property><name>ozone.recon.db.dir</name><value>/data/metadata/recon</value></property>
<property><name>ozone.scm.datanode.ratis.volume.free-space.min</name><value>10MB</value></property>
<property><name>hdds.datanode.dir</name><value>/data/hdds</value></property>
<property><name>ozone.om.s3.grpc.server_enabled</name><value>true</value></property>
<property><name>ozone.om.service.ids</name><value>omservice</value></property>
<property><name>ozone.datanode.pipeline.limit</name><value>3</value></property>
<property><name>ozone.om.nodes.omservice</name><value>om1,om2,om3</value></property>
<property><name>ozone.scm.datanode.id.dir</name><value>/data</value></property>
<property><name>ozone.scm.ratis.enable</name><value>true</value></property>
<property><name>ozone.recon.address</name><value>10.10.2.101:9891</value></property>
<property><name>ozone.scm.container.size</name><value>1GB</value></property>
<property><name>ozone.metadata.dirs</name><value>/data/metadata</value></property>
<property><name>ozone.om.address.omservice.om1</name><value>jykj0.yarn.com</value></property>
<property><name>ozone.om.address.omservice.om2</name><value>jykj1.yarn.com</value></property>
<property><name>ozone.om.address.omservice.om3</name><value>jykj2.yarn.com</value></property>
</configuration>
  • core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property><name>fs.trash.interval</name><value>1</value></property>
<property><name>fs.defaultFS</name><value>ofs://omservice</value></property>
</configuration>

启动服务

首先必须格式化集群、一定要注意启动先后顺序、先启动SCM,后启动OM、最后启动DataNode. Recon任何时候启动都可以。

  • 登录jykj.[0~2].yarn.com服务器,格式化SCM,初始化OM

    ozone scm --init

    ozone scm --bootstrap

    ozone om --init

  • 登录jykj.[0~2].yarn.com服务器,启动scm和om

    ozone --daemon start scm

    ozone --daemon start om

  • 登录jykj0.yarn.com服务器,启动Recon,稽查系统

    ozone --daemon start recon

  • 登录kykj.[3~4].yarn.com服务器,启动DataNode

    ozone --daemon start datanode

验证启动情况

  • 浏览器打开访问、查看稽查系统webui是否存在2个DataNode节点

    192.168.149.101:9888

  • 浏览器访问OM,SCM地址,均可访问即启动成功

    192.168.149.101:9876/9874

  • 命令行验证OM、SCM是否选举成功

    ozone admin om getserviceroles -id=omservice

  • 上传文件下载文件测试成功

    hadoop fs put abc.txt / hadoop fs -get /abc.txt .

总结

  以上对Ozone高可用搭建的总结、当然在Ozone的安装包中,存在compose目录,可以通过docker-compose 一键启
  动,笔者也是通过参考docker-compose配置文件总结的,希望本文可以对读者起到帮助作用.

参考

  • https://ozone.apache.org/

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦