简介

  • 众所周知,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. 算法复杂度图示&JavaScript算法链接

    https://juejin.im/post/5c9a1d58e51d4559bb5c6694

  2. day11 作业

    # 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), # 要求登录成功一次,后续的函数都无需再输入用户名和密码 # FLAG = False # def login(func): ...

  3. J.K.罗琳女士---《失败的好处和想象的重要性》

    目录 sohu ruanyifeng web sohu http://www.sohu.com/a/166181502_467718 <哈利波特>的作者J.K.罗琳女士在出席一次哈佛大学的 ...

  4. vue-element-admin 引入高德地图并做海量点标记

    第一步: 首先在index.html入口文件中添加引入高德地图的js,并填写自己在官网申请的key.如果没有申请不填写也是可以的. plugin:项目中如果有需要引入插件则使用没有直接去掉就行. &l ...

  5. Linux命令:tcpdump命令

    tcpdump网络抓包工具 格式:tcpdump [options] [表达式] optinos选项 -i any:监听所有网络接口 -i eth0:监听指定的网络接口(eth0) -D:列出所有可用 ...

  6. Atcoder Grand Contest 037A(贪心,思维)

    #include<bits/stdc++.h>using namespace std;string s;char ans[200007][7];char anss[200007][7];i ...

  7. OBST(最优二叉搜索树)

    简述一下问题:假设有一颗词典二叉树,我们从中查找需要的单词,使用红黑树或平衡树这样的数据结构总是可以在O(lgN)时间内进行查找,但单词的出现频率是不同的,我们给每个单词加上一个搜索概率,然后通过这些 ...

  8. 解决 U2000 R017 安装报错: 检查SQL server数据库环境变量信息 ( 异常 ) [ 详细信息 ] PATH环境变量中缺少数据库路径的信息

    U2000 R017 安装报错: 检查SQL server数据库环境变量信息 ( 异常 ) [ 详细信息 ] PATH环境变量中缺少数据库路径的信息 管理员模式打开注册表位置: HKEY_LOCAL_ ...

  9. IE 样式属性前后缀兼容写法略统计

    总结 IE 兼容写法: \9: IE6 IE7 IE8*: IE6 IE7_: IE6*+: IE7 ---------------------------------- 书写位置: backgrou ...

  10. [PHP] PHP7已经删除了preg_replace的e修饰符

    官网提示是这样的,对/e修饰符的支持已删除.请改用preg_replace_callback()原因是/e 修正符使 preg_replace() 将 replacement 参数当作 PHP 代码( ...