zoukankan      html  css  js  c++  java
  • HDFS Ozone整体概述

    前言


    HDFS Ozone对象存储最近会有一个大动作:merge到主代码分支。这就动作具有十分大的意义,因为它意味着Ozone将在下一个最近发布的hadoop版本中出现并可以被广大用户所使用。所以在这个背景下,Ozone第一版本的代码和结构基本已经确定完毕,这个时候,我们再从大的层面来学习、了解这个框架、体系显然还是很有必要的。官方社区已经有许多相应的介绍文档在介绍这方面的内容了。笔者也大致阅读了一下,来简单概述其中一些要点。

    Ozone高层设计


    首先要明白Ozone是用来干什么的:

    基于Apache Hadoop之上用来做亿万数量级对象存储的。

    Ozone第一版本内部的架构图如下所示:


    下面,笔者依次从上到下介绍其中相关的组件。

    Ozone Client


    Ozone client客户端在Ozone内部是一个对外部开放使用的模块,比如说Ozone相关的shell命令会触发到ozone client,这就是图中显示的Ozone Cli。

    再来说说图中左上角的Rest Handler。这是什么意思呢?Ozone client能够支持2种方式的通信:RPC方式和Restful接口的方式。其中能做到一键切换。

    Corona是Ozone内部的性能测试工具,它的原理是利用Ozone客户端接口来做一些benchmark。它可以分为2种模式:online和offline模式。

    offline模式:开若干线程创建指定数量级别的随机命名的volume/bucket/key。以此达到在拥有大量key的效果。
    online模式:连接一个公开的地址,通过网络爬取的方式下载文件,put到Ozone上。

    Ozone文件系统:OzoneFileSysyem


    Ozone为了兼容其它框架体系,根据自身独特的数据特点,实现了文件系统接口,称为OzoneFileSystem。这样的话,用户可以以通用的方式来使用Ozone内部的文件对象。在程序上无需做兼容性的改动。

    Key Space Manager


    Key Space Manager(KSM)负责管理的是Ozone命名空间。所有的volume,bucket、key的记录信息都保存在了KSM中。此角色类似于HDFS的NameNode。KSM与SCM交互通性,然后Ozone client写学数据到最终的block上。最终通过Apache Ratis来实现多副本机制,以此保证HA。

    Storage Container Manager


    Storage Container Manager(SCM)负责管理“Container”对象,Container在逻辑上存储的是block块对象集合。DataNode是以Container的形式来提供存储能力。

    在SCM内部提供了以下抽象的概念:


    下面是具体角色介绍:

    • Block: block数据块对象,真实存储数据的对象,可以拥有多个副本块。
    • Container:Block块集合。
    • Pipeline:SCM允许2种Pipeline方式实现多副本:单副本的Standaline模式和多副本的Ratis方式。
    • Pool:一组特定的数据节点称为一个pool。将节点按pool分组是为了方便日常的维护升级操作,也是为了扩展性的考虑。
    • Node:物理存储数据的地方。

    参考资料


    1.Ozone: Documentation: Add Ozone overview documentation. https://issues.apache.org/jira/secure/attachment/12889871/HDFS-12551-HDFS-7240.004.patch

  • 相关阅读:
    ThreadLocal应用场景以及源码分析
    ThreadLocal使用,应用场景,源码实现,内存泄漏
    ThreadLocal
    JBOSS默认连接池配置
    项目经验——jboss 配置数据库连接池
    InitialContext与lookup
    从零开发分布式数据库中间件 二、构建MyBatis的读写分离数据库中间件
    从零开发分布式数据库中间件 一、读写分离的数据库中间件
    appium+python自动化42-微信公众号
    appium+python自动化41-切换webview时候报chromedriver版本问题
  • 原文地址:https://www.cnblogs.com/bianqi/p/12183658.html
Copyright © 2011-2022 走看看