简介

  • 众所周知,HDFS是大数据存储系统,并在业界得到了广泛的使用。但是无论大集群还是小集群其扩展性都受NameNode的限制,虽然HDFS可以通过Federation进行扩展,但是依然深受小文件和4亿个文件的困扰。
  • 于是分布式key-value存储系统Ozone诞生了,Ozone能够轻松管理小文件和大文件。
  • 其他能处理小文件的存储方案有Hbase, ceph等, 本人目前所了解的是ceph性能更好, ozone由于未在上产环境中实践过, 性能对比尚不可知。
  • Ozone是专门为Hadoop设计的可扩展的分布式对象存储系统。
  • Hadoop生态中的其它组件如Spark、Hive和Yarn不需要任何修改就可以直接运行在Ozone之上。
  • Ozone的使用方式也较为丰富,可以通过命令行直接使用也有java客户端接口,而且接口支持RPC和REST。
  • 组成:
    • volumes

      • Volumes只有管理员能够创建和删除,类似账号的概念,管理员一般都是给某个团队或者组织创建一个Volume。
      • Buckets是在Volume下,一个Volume可以包含n个Buckets,但是Buckets下面只能是Keys。
    • buckets
      • 类似目录, 但只能有一层, 因为Buckets中不能包含其它Buckets。
    • Keys
      • Keys就是具体的对象,在Buckets中是唯一的,其名字可以是任意字符串,其值就是需要存储的数据,也就是具体的文件。
      • 目前ozone对key的大小没有限制,bucket可以包含n个keys。

设计原则

  • Ozone是由一群对大规模Hadoop集群有着丰富运维和管理经验的工程师设计开发的,因此HDFS在实践中的优缺点深刻的影响着Ozone的设计和优化。

    1. Strongly Consistent(强一致性)
    2. Architectural Simplicity(结构简化)
      • Ozone尽可能的将架构进行简单化,即使牺牲掉一些可扩展性,但是在扩展性上Ozone并不逊色。Ozone目前在单个集群上可以存储10亿个对象。
    3. Layered Architecture(分层结构)
      • Ozone将namespace management与块和节点管理层分开,允许用户分别对其进行扩展。
    4. Painless Recovery(无痛恢复)
    5. Open Source(开源)
    6. Interoperability with Hadoop Ecosystem(具有与Hadoop生态系统的互用性)

架构

  • 架构图

  • Ozone Manager(OM)

    • OzoneManager是一个server服务,主要负责Ozone的namespace,记录所有的volume, bucket和key操作。有点类似HDFS的namenode
  • Storage Container Manager(SCM)

    • 类似HDFS中的block manager,是Ozone中一个非常重要的组件,用来管理container的,为OM提供基于block和container的服务。
    • container是由一些block组成的集合,这些block相互之间没有关系。
    • SCM与数据节点协同工作从而维护群集所需的复制级别
  • Datanodes

    • 如果是基于HDFS部署的Ozone也就是Ozone数据节点功能以插件的功能运行在HDFS的datanode中,则就指HDFS的datanode。

单节点部署

  • 需要先部署Hadoop3.0+,具体部署请参考: https://www.cnblogs.com/ronnieyuan/p/11518913.html

  • 将tar包解压并修改ozone目录名

    tar -zxvf hadoop-ozone-0.4.1-alpha.tar.gz -C /opt/ronnie/
    mv ozone-0.4.1-alpha/ ozone-0.4.1
  • 将Ozone的相关内容复制到Hadoop的home目录:

    cd ozone-0.4.1/
    cp libexec/ozone-config.sh /opt/ronnie/hadoop-3.1.2/libexec
    cp -r share/ozone /opt/ronnie/hadoop-3.1.2/share
    cp -r share/hadoop/ozoneplugin /opt/ronnie/hadoop-3.1.2/share/hadoop/
  • vim ~/.bashrc 添加ozone环境变量 并source ~/.bashrc 使变量生效。

    # Ozone
    export OZONE_HOME=/opt/ronnie/ozone-0.4.1
    export PATH=$OZONE_HOME/bin:$PATH
  • 利用Ozone的命令生成conf文件

    ozone genconf /opt/tmp/ # 我先给他生成到一个临时目录
  • 修改该配置文件

    vim /opt/tmp/ozone-site.xml
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration>
    <property>
    <name>ozone.enabled</name>
    <value>true</value>
    <tag>OZONE, REQUIRED</tag>
    <description>
    Status of the Ozone Object Storage service is enabled.
    Set to true to enable Ozone.
    Set to false to disable Ozone.
    Unless this value is set to true, Ozone services will not be started in
    the cluster. Please note: By default ozone is disabled on a hadoop cluster.
    </description>
    </property>
    <property>
    <name>ozone.om.address</name>
    <value>localhost</value>
    <tag>OM, REQUIRED</tag>
    <description>
    The address of the Ozone OM service. This allows clients to discover
    the address of the OM.
    </description>
    </property>
    <property>
    <name>ozone.metadata.dirs</name>
    <value>/opt/ronnie/hadoop-3.1.2/ozone</value>
    <tag>OZONE, OM, SCM, CONTAINER, STORAGE, REQUIRED</tag>
    <description>
    This setting is the fallback location for SCM, OM, Recon and DataNodes
    to store their metadata. This setting may be used only in test/PoC
    clusters to simplify configuration. For production clusters or any time you care about performance, it is
    recommended that ozone.om.db.dirs, ozone.scm.db.dirs and
    dfs.container.ratis.datanode.storage.dir be configured separately.
    </description>
    </property>
    <property>
    <name>ozone.scm.client.address</name>
    <value>localhost</value>
    <tag>OZONE, SCM, REQUIRED</tag>
    <description>
    The address of the Ozone SCM client service. This is a required setting. It is a string in the host:port format. The port number is optional
    and defaults to 9860.
    </description>
    </property>
    <property>
    <name>ozone.scm.names</name>
    <value>localhost</value>
    <tag>OZONE, REQUIRED</tag>
    <description>
    The value of this property is a set of DNS | DNS:PORT | IP
    Address | IP:PORT. Written as a comma separated string. e.g. scm1,
    scm2:8020, 7.7.7.7:7777.
    This property allows datanodes to discover where SCM is, so that
    datanodes can send heartbeat to SCM.
    </description>
    </property>
    <property>
    <name>ozone.replication</name>
    <value>1</value>
    </property>
    </configuration>
  • 改配置之后复制到Hadoop3.0的conf目录中

    cp /opt/tmp/ozone-site.xml /opt/ronnie/hadoop-3.1.2/etc/hadoop/
  • 将Ozone运行在HDFS之上的话,需要在hdfs-site.xml中添加如下内容:

    <property>
    <name>dfs.datanode.plugins</name>
    <value>org.apache.hadoop.ozone.HddsDatanodeService</value>
    </property>
  • start-dfs.sh 启动hdfs

  • 其次启动scm和om,要先启动scm再启动om,而且在第一次启动的时候要先初始化,命令如下:

    ozone scm --init
    ozone --daemon start scm
    ozone om --init
    ozone --daemon start om
  • 一切正常就可以在OM的UI上查看信息,OM默认端口上9874

hadoop ozone入门的更多相关文章

  1. Hadoop快速入门

    目的 这篇文档的目的是帮助你快速完成单机上的Hadoop安装与使用以便你对Hadoop分布式文件系统(HDFS)和Map-Reduce框架有所体会,比如在HDFS上运行示例程序或简单作业等. 先决条件 ...

  2. hadoop pig入门总结

    在这里贴一个pig源码的分析,做pig很长时间没做笔记,不包含任何细节,以后有机会再说吧 http://blackproof.iteye.com/blog/1769219 hadoop pig入门总结 ...

  3. Hadoop高速入门

    Hadoop高速入门 先决条件 支持平台 GNU/Linux是产品开发和执行的平台. Hadoop已在有2000个节点的GNU/Linux主机组成的集群系统上得到验证. Win32平台是作为开发平台支 ...

  4. 详细的Hadoop的入门教程-完全分布模式Fully-Distributed Operation

    1. 前面在伪分布模式下已经创建了一台机器,为了统一命名,hostname更名为hadoop01.然后再克隆2台机器:hadoop02. hadoop03:将第一台机器hadoop01上的伪分布停止, ...

  5. 1.2 Hadoop快速入门

    1.2 Hadoop快速入门 1.Hadoop简介 Hadoop是一个开源的分布式计算平台. 提供功能:利用服务器集群,根据用户定义的业务逻辑,对海量数据的存储(HDFS)和分析计算(MapReduc ...

  6. Hadoop大数据学习视频教程 大数据hadoop运维之hadoop快速入门视频课程

    Hadoop是一个能够对大量数据进行分布式处理的软件框架. Hadoop 以一种可靠.高效.可伸缩的方式进行数据处理适用人群有一定Java基础的学生或工作者课程简介 Hadoop是一个能够对大量数据进 ...

  7. hadoop MapReduce 入门

    原创播客,如需转载请注明出处.原文地址:http://www.cnblogs.com/crawl/p/7687120.html ------------------------------------ ...

  8. hadoop(1)入门

    hadoop入门(一)   一.概述 1.什么是hadoop hadoop不仅是一个用于存储分布式文件系统,还是设计用来在有通用计算设备组成的大型集群上执行的分布式应用的基础框架. hadoop框架最 ...

  9. 大数据之Hadoop技术入门汇总

    今天,小编对Hadoop入门学习知识进行了汇总,帮助大家更好地入手大数据.小编关于Hadoop入门总共发写了12篇原创文章,文章是参照尚硅谷大数据视频教程来进行撰写的. 今天,小编带你解锁正确的阅读顺 ...

随机推荐

  1. 【剑指Offer面试编程题】题目1362:左旋转字符串--九度OJ

    题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=&qu ...

  2. 删除hdfs上的内容报错:rm: Cannot delete /wxcm/ Name node is in safe mode.

    问题:在执行删除hdfs上的内容时(hdfs dfs -rm -f -r -skipTrash /wxcm)报错:rm: Cannot delete /wxcm/ Name node is in sa ...

  3. HttpClient 以post的方式发送请求(由于请求参数太多所以改成以post提交表单的方式)

    1:Util类方法 /** * 发送 Post请求 * * @param url * @param reqXml * @return */ public static String post(Stri ...

  4. webservice之实现天气预报

    前通过传智的视频自学了webservice的基本使用,也了解到webservice就是一种跨编程语言和跨操作系统平台的远程调用技术. 对于这些理论知识在这里也不再做过多的解释,本次主要就是记录与分享使 ...

  5. Windows密码安全性测试

    一.本地管理员密码如何直接提取 1.1直接通过mimikatz读取管理员密码 (不能交互式,不能在webshell下用,图形化界面很好用) 第一条:privilege::debug          ...

  6. 【剑指Offer面试编程题】题目1518:反转链表--九度OJ

    题目描述: 输入一个链表,反转链表后,输出链表的所有元素. (hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(0< ...

  7. Restful API及接口安全

    一.简介 REST(Representational State Transfer,具体状态转移),是一种基于HTTP协议.URI(统一资源定位符).JSON和XML这些现有协议与标准的,针对网络应用 ...

  8. Unnatural

    1. 纪录片:非自然选择 1.1 CRISPR-Cas9的出现 1.2 故事1:先天性基因缺陷而失明的小孩 1.3 故事2:基因变异的蚊子 1.4 基因技术应用的现状 1.5 担忧 2. CRISPR ...

  9. HTML多条件筛选商品

    今天同事接到一个类似于JD的按条件筛选商品的功能,同事把这个锅出色的甩给了我,俺就勉为其难的解决了这个问题. 首先我们来理清一下思路: 1.条件切换时,tab选项卡肯定要跟着切换,而且只是一个大类条件 ...

  10. MySQL多实例安装(相同版本)

    本文以MySQL5.7为例,介绍在同一台机器下如何安装多个MySQL实例. 环境:RHEL 6.5 + MySQL 5.7 1.单实例MySQL安装 2.多实例MySQL配置 3.多实例MySQL初始 ...