Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >0918-Apache Ozone简介

0918-Apache Ozone简介

作者头像
Fayson
发布于 2024-04-30 04:26:01
发布于 2024-04-30 04:26:01
1.4K0
举报
文章被收录于专栏:Hadoop实操Hadoop实操

Ozone 是 Hadoop 的分布式对象存储系统,具有易扩展和冗余存储的特点。Ozone 不仅能存储数十亿个不同大小的对象,还支持在容器化环境(比如 Kubernetes)中运行。Apache SparkHive 和 YARN 等应用无需任何修改即可使用 Ozone。Ozone 提供了 Java API、S3 接口和命令行接口,极大地方便了 Ozone 在不同应用场景下的使用。

HDFS面对大文件时,表现极佳,但是一直受到小文件的困扰。Ozone 是一种分布式key-value对象存储,可以同时管理大文件和小文件。Ozone 原生支持 S3 API,并提供与 Hadoop 兼容的文件系统接口。CDP Private Cloud Base中包含了Ozone组件,可以通过Cloudera Manager进行部署,管理和维护。

1.Ozone存储元素

  • • Volumes(卷):卷与帐户类似,卷只能由管理员创建或删除,管理员为组织或团队创建卷。
  • • Buckets(桶):桶的概念和目录类似,Ozone bucket类似Amazon S3的bucket,用户可以在自己的卷下创建任意数量的桶,每个桶可以包含任意数量的键,但是不可以包含其它的桶。
  • • Keys(键):键的概念和文件类似,每个键是一个bucket的一部分,键在给定的bucket中是唯一的,类似于S3对象,Ozone将数据作为键存储在bucket中,用户通过键来读写数据。

当客户端写入key时,Ozone将数据以多个chunk的形式保存到DataNode上,称为block,一个Block包含多个Chunk,Chunk是客户端数据读写的基本单位。因此每个key都与一个或多个block相关联,在 DataNode 内,多个不相关的block可以驻留在storage container中。

2.Ozone的主要特性

  • • Consistency(一致性):Ozone是一种强一致性的分布式存储,其一致性通过使用像RAFT这样的协议来实现。
  • • Architectural simplicity(架构简单):简单的架构易于使用,并且在出现问题时易于调试,同时易于扩展,Ozone旨在在单个集群中存储超过 1000 亿个对象。
  • • Layered architecture(分层架构):Ozone将命名空间管理与块和节点管理分开,允许用户在两个维度上独立扩展。
  • • Easy recovery(恢复简单):Ozone像HDFS一样具有高容错性,可以轻松从灾难性事件(例如集群范围内断电)中恢复,而不会丢失数据,也无需昂贵的恢复步骤。
  • • Open source in Apache:Apache 开源社区对于 Ozone 对象存储的成功至关重要,所有 Ozone 设计和开发都在 Apache Hadoop 社区中完成。
  • • Hadoop生态支持:原生支持Hadoop生态圈的计算引擎如Hive,Spark和MapReduce

1 Ozone架构

Ozone 将命名空间和存储的管理分开,从而方便扩展。Ozone Manager (OM) 管理命名空间,而 Storage Container Manager (SCM) 管理容器。存储在 OM,SCM 和数据节点上的所有元数据都需要存储在 NVME 或 SSD 等低延迟磁盘中。下图是Ozone的基础架构组成:

1.Ozone Manager

Ozone Manager (OM) 是一个高可用的命名空间管理服务,它管理卷、存储桶和key的元数据,OM维护key与其对应的block ID之间的映射。当客户端应用程序请求key来执行读写操作时,OM 与 SCM 交互以获取相关的block信息,并将该信息反馈给客户端。OM 使用 Apache Ratis来复制 Ozone Manager状态。当 RocksDB(嵌入式存储引擎)保存元数据或键空间(keyspace)时,会将 Ratis 事务flush到本地磁盘以确保持久化。因此每个OM都需要配备NVME或者SSD低延迟的存储设备,同时可以确保最大吞吐,典型的Ozone集群一般都会部署三个OM节点。

2.DataNode

DataNode 存储客户端写入的数据块,这些块的集合称为一个storage container。对于一个block,客户端以一个固定的chunk文件大小(4MB)传输数据,这些chunk文件最终是被写入磁盘。DataNode以固定的时间间隔向SCM发送心跳,每次心跳时,DataNode 都会发送容器报告。DataNode 中的每个storage container都有自己的 RocksDB 实例,用于存储block和chunk文件的元数据。每个 DataNode 都可以是一个或多个活动管道的一部分,这个管道实际上是一个 Ratis 仲裁,包含选举出来的leader DataNode,以及follower的DataNodes(接受数据写入)。但来自客户端的读取直接进入 DataNode,而不用通过 Ratis。DataNode上也需要配备SSD高速磁盘来保存活动管道的 Ratis 日志并提高写入吞吐量。

3.Storage Container Manager

storage container是Ozone中的复制单元,而HDFS的复制单元则直接是block,Ozone是将block装在了container中,container的默认大小为5GB。SCM 管理 DataNode 管道以及管道上容器的放置,管道是基于复制因子的DataNode 的集合。假设默认复制因子为 3,则每个管道包含三个 DataNode。SCM 负责创建和管理发生块分配的 DataNode 的活动写入管道。

客户端直接将block写入DataNode上打开的container,SCM并不直接位于数据路径上,容器在关闭后是不可变的。 SCM 使用 RocksDB 来保存管道元数据和容器元数据,与 OM 管理的键空间(keyspace)相比,此元数据要小得多。

SCM是一个使用Apache Ratis 的高可用组件,建议在SCM节点上为Ratis WAL和RocksDB配置SSD高速磁盘,生产Ozone集群建议部署三个SCM节点。

  1. 4. Recon Server

Recon 是 Ozone 集群内的集中式监控和管理服务,如管理和维护OM和SCM的元数据信息。Recon 会拍摄 OM 和 SCM 元数据的快照,同时还接收来自 DataNode 的心跳。Recon 根据集群的繁忙程度以增量方式异步构建集群完整状态的快照,Recon 通常在更新 OM 元数据快照方面落后 OM 一些事务。建议使用SSD来维护快照信息,这样可以让Recon的快照信息尽量追上OM的事务更新。

5.Ozone File System Interfaces

Ozone 是一个多协议存储系统,支持以下接口:

  • • s3: Amazon’s Simple Storage Service (S3) 协议,你可以直接使用S3客户端和基于S3 SDK的应用程序通过Ozone S3 Gateway访问Ozone中的数据。
  • • o3:Ozone shell 使用的对象存储接口。
  • • ofs:兼容Hadoop的文件系统(Hadoop-compatible filesystem,HCFS),访问通过HDFS API访问数据的应用程序访问Ozone,如Spark和Hive。
  • • o3fs:已弃用,不推荐,基于存储桶的 Hadoop 兼容文件系统 (HCFS) 接口。

6.S3 Gateway

S3 gateway一个无状态组件,可通过 HTTP 提供对 Ozone 的 REST 访问,并支持与 AWS 兼容的 s3 API。 S3网关支持分段上传和加密区域(encryption zone)。此外,S3 gateway将通过 HTTP 的 s3 API 调用转换为对其他 Ozone 组件的 rpc 调用。为了扩展S3访问,建议部署多个S3 gateway节点,并在之上部署负载均衡如haproxy。

2 Ozone containers

container是Ozone 的基本复制单元,由SCM服务进行管理,container是大型的二进制单元,默认5GB,可以包含多个block。SCM并不管理block的本地信息,因此即使系统中创建了数十亿个小文件(即数十亿block),DataNode 也只会报告容器的状态。每当 Ozone Manager 向 SCM 请求新的block分配时,SCM 都会识别合适的容器并生成包含 ContainerId 和 LocalId 的block id。客户端连接到存储容器的DataNode,DataNode根据LocalId管理block。

Open vs closed containers

Open

Closed

mutable

immutable

replicated with RAFT (Ratis)

Replicated with async container copy

Write: Allowed only on Raft Leader

Write: No writes are allowed

Read: On all replicas

Read: On all replicas

Deletes: Not allowed

Deletes: allowed

3 Ozone 如何管理读取操作

客户端请求与其想要读取的key相对应的block位置,如果客户端具有所需的读取权限,Ozone Manager (OM) 将返回block位置。

1.客户端向 OM 请求与要读取的key对应的block位置。

2.OM 检查 ACL 以确认客户端是否具有所需的权限,并返回允许客户端从 DataNode 读取数据的block位置和block token。

3.客户端连接到与返回的Block ID关联的DataNode并读取数据块。

4 Ozone如何管理写操作

客户端向 Ozone Manager (OM) 请求block来写入key,OM返回Block ID和对应的DataNode供客户端写入数据。

1.客户端向 OM 请求块来写入key,该请求包括key、管道类型和复制计数。

2.OM 找到与 SCM 请求匹配的block并将它们返回给客户端。

  • • 如果集群启用了安全,OM 还会向客户端提供block token以及block位置。客户端使用block token连接到DataNode并发送命令以写入chunks。

3.客户端连接到与返回的block信息关联的DataNode并写入数据。

4.写入数据后,客户端通过发送提交请求来更新OM上的block信息。

5.OM记录相关的key信息。在 OM 提交与key关联的block信息之前,Ozone 中的key不可见。 客户端通过提交请求在 DN 上写入block后,负责将key-block信息发送给 OM。

5 Ozone 如何管理删除操作

Ozone是一个一致性的对象存储,删除请求完成后,Ozone Manager 会从活动命名空间中删除该key,并将该文件标记为垃圾回收。Ozone也遵循异步删除的原理,在大多数文件系统中,垃圾回收和释放存储空间的机制是异步管理的,以确保删除操作不会与读取和写入操作冲突。

Ozone Manager 中标记为已删除的文件由container聚合,并向 SCM 发送删除block的请求。 然后SCM 将请求转发到 DataNode 以从磁盘释放实际空间。block删除仅发生在closed的container上,例如如果删除命名空间中的对象,则删除操作仅反映在closed容器中的相应block。对于状态不是 CLOSED 的容器中存在的block,仅在容器达到 CLOSED 状态后才会进行删除。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
HDFS(Hadoop Distributed File System)作为Hadoop生态的核心存储组件,其读写流程的设计体现了分布式系统的高可靠性与高吞吐特性。理解HDFS读写机制的核心框架,是掌握大数据存储技术的基础,也是面试中高频考察的技术要点。
用户6320865
2025/08/27
1030
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
深入解析Hadoop中的HDFS架构设计
作为Hadoop生态系统的基石,HDFS(Hadoop Distributed File System)是一种专为大规模数据处理而设计的分布式文件系统。它的核心设计理念源于对互联网时代数据特征的深刻洞察——数据规模呈指数级增长,而硬件故障在廉价商用服务器集群中成为常态。这种设计哲学使得HDFS在应对PB级甚至EB级数据存储时展现出独特优势,成为大数据基础设施中不可或缺的组成部分。
用户6320865
2025/08/27
1070
深入解析Hadoop中的HDFS架构设计
深入解析HDFS写入流程:管道机制与数据可靠性保障
在分布式文件系统HDFS中,数据写入是一个经过精心设计的复杂过程,其核心目标是在保证数据可靠性的同时实现高效传输。整个写入流程始于客户端与NameNode的交互,经过数据分块、管道传输、副本确认等多个关键环节,最终完成数据的持久化存储。这一过程充分体现了HDFS"一次写入、多次读取"的设计理念,以及面对大规模数据时的处理能力。
用户6320865
2025/08/27
1220
深入解析HDFS写入流程:管道机制与数据可靠性保障
Ozone社区的领航者:腾讯Ozone EC的方案剖析
[导语] EC(Erasure Coding, 纠删码) 是现代分布式存储系统一个重要的能力。它可以保证在相同数据持久度的基础上大幅提高存储空间利用率,对降低存储成本有极为重要的意义。腾讯大数据存储团队全程参与了 Ozone 社区 EC 的设计与开发,并先于社区在内部完成了 EC offline recovery 的开发和测试。本文主要讲解 EC 在 Ozone 中的设计与实现,并讨论其中的利弊权衡。 0.引言 Apache Ozone 做为 Hadoop 生态的下一代分布式存储系统,是 Hadoop 生态
腾讯大数据
2022/08/26
1.1K0
Ozone社区的领航者:腾讯Ozone EC的方案剖析
Hadoop Ozone如何巧妙利用Multi-Raft机制优化数据节点吞吐量
背景 作为近期Hadoop社区的明星项目,Hadoop Ozone吸引了社区广泛的关注。它脱胎于HDFS,不仅同时支持文件系统和对象语义,能原生对接HDFS和S3两种访问模式,也将集群的读写性能和吞吐量视为重中之重。2019年年中,腾讯大数据团队开始上线Ozone集群承接大数据存储业务,数据湖小组也全力投入了Hadoop Ozone的开源项目中。在与Hadoop Ozone社区和Cloudera深度合作后,数据湖小组凭借在开源界多年的深耕和数据平台的业务对接实战经验,逐渐发现Ozone写入性能显现出了一定
腾讯大数据
2020/07/14
1.3K0
Ozone安装部署指南
Ozone 的安装和运行有多种方式,支持从简单的本地节点 docker 部署,到大规模多节点的 Kubernetes 或物理集群部署。
从大数据到人工智能
2022/03/30
3.6K0
向成熟化迈进 - 腾讯Ozone千台能力突破
背景介绍 腾讯目前在HDFS上存储了海量的数据,但HDFS在可扩展性上的缺陷,以及对小文件的不友好,限制了HDFS在许多场景下的应用。 为了寻找能解决这些问题的存储系统,Ozone走入了我们的视野。Ozone是继HDFS的下一代统一数据湖对象存储系统,数据湖是一种在系统或存储库中以自然格式存储数据的方案,它有助于以各种模式和结构形式配置数据,通常是对象块或文件。 HDFS缺陷 Apache Hadoop HDFS从出现到现在经过10多年的发展,已经到了非常成熟的状态,广泛应用于业界,解决海量文件的存储需
腾讯大数据
2020/07/23
2.3K0
Apache ratis-shell : Alluxio & Ozone HA 管控利器
背景 Alluxio 的 Master 以及 Job Master 服务和 Ozone 的 Ozone Manager 以及 Storage Container Manager 服务等,都是基于 Apache Ratis 实现的 HA 高可用服务。对于这些高可用服务,在某些场景,都需要获取 Leader 信息、commit 信息等 Ratis group 内部的信息,也会用在更换机器、滚动升级等场景,需要切换 leader 等必要的功能。目前 Alluxio 和 Ozone 正在分别实现这些功能,而这些功能
腾讯大数据
2022/07/04
9840
Apache ratis-shell : Alluxio & Ozone HA 管控利器
0920-7.1.9-Apache Ozone命令行简介
Ozone 客户端可以将 Ozone 作为文件系统和key-value存储进行访问,当 Ozone 与 HDFS 依赖项一起安装时,Ozone支持HDFS客户端命令,如hdfs dfs,如果ozone不是defaultfs,需要指定URI路径。
Fayson
2024/04/30
3610
0920-7.1.9-Apache Ozone命令行简介
0919-Apache Ozone安全架构
身份认证是 Ozone 组件识别用户身份的过程,Apache Ozone支持使用Kerberos和security tokens的强身份认证。
Fayson
2024/04/30
5511
0919-Apache Ozone安全架构
Hadoop面试题[通俗易懂]
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题
全栈程序员站长
2022/09/07
6050
漫谈未来的HDFS
前面我们提到的HDFS,了解了HDFS的特性和架构。HDFS能够存储TB甚至PB规模的数据是有前提的,首先数据要以大文件为主,其次NameNode的内存要足够大。对HDFS有所了解的同学肯定都知道,NameNode是HDFS的存储着整个集群的元数据信息,比如所有文件和目录信息等等。而且当元数据信息较多时,NameNode的启动会变得很慢,也比较容易触发GC操作。显然当数据到了一定的量级,元数据管理会成为HDFS的一个瓶颈,其实这也是为什么说它适合存储大文件的原因。如果解决了元数据管理的问题,其实HDFS是可以支撑海量小文件的。
用户3128938
2018/09/02
5090
Apache Ozone和密集型数据节点
该帖子也是由两名思科员工共同撰写的:Karthik Krishna,Silesh Bijjahalli
大数据杂货铺
2021/04/30
1.5K0
五万字 | 耗时一个月,整理出这份Hadoop吐血宝典
一、HDFS 二、MapReduce 三、Yarn 四、Hadoop3.x 新特性 五、Hadoop 大厂面试真题解析
五分钟学大数据
2021/10/26
1.8K0
分布式文件系统:JuiceFS 技术架构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-90ZtG0tw-1687771442157)(https://juicefs.com/docs/zh/assets/images/juicefs-arch-new-ab6339cb1408945cc9b70dc091c523c5.png)]
Freedom123
2024/03/29
9800
分布式文件系统:JuiceFS 技术架构
腾讯云大数据 TBDS 在私有化场景万节点集群的实践
作者 | 杨鹏程 策划 | 凌敏 4 月 15 日 -16 日,由 InfoQ 主办的 DIVE 全球基础软件创新大会 通过云上展厅的形式成功召开。在 腾讯云基础软件创新实践专场,来自腾讯云的 TBDS 大数据引擎研发负责人杨鹏程带来了主题为《腾讯云⼤数据 TBDS 在私有化场景万节点集群的实践》的演讲,以下为主要内容。 本次分享主要分为三个部分展开:第一部分是 Hadoop 体系下存算⼀体存在的问题;第二部分是 TBDS 存算分离架构和三层优化;第三部分是云原⽣环境下计算引擎优化和最佳实践,最后是对本次分
深度学习与Python
2023/03/29
1.2K0
腾讯云大数据 TBDS 在私有化场景万节点集群的实践
开源项目介绍 |Apache Ozone-分布式大数据通用存储
2021腾讯犀牛鸟开源人才培养计划 开源项目介绍 滑至文末报名参与开源人才培养计划 提交项目Proposal Apache Ozone项目介绍 标签:大数据存储  技术栈:Java 标签:大数据存储  技术栈:Java Apache Ozone-分布式大数据通用存储,Ozone是一个大数据场景分布式存储,支持百亿到千亿级对象和文件。Ozone提供兼容S3 的对象功能,和兼容Hadoop File System(HCFS)的文件功能,同时通过CSI驱动接入Kubernets生态。Ozone定位于
腾讯开源
2021/06/21
1.7K0
【存储100问】HPC 存储架构选型:IO500 榜单的思考
IO500基准测试已成为评估高性能计算(HPC)和人工智能(AI)领域存储系统性能的重要舞台,尽管其评价标准时而引发争议 1。从Lustre等老牌系统到DAOS等现代架构,顶级性能者的多样性揭示了一个关键事实:不存在单一的“最佳”存储架构。最优选择与工作负载的独特需求内在绑定。
数据存储前沿技术
2025/06/30
1810
【存储100问】HPC 存储架构选型:IO500 榜单的思考
腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务
作者介绍 毛宝龙 腾讯高级工程师,Alluxio PMC & Maintainer,Apache Ozone committer,腾讯 Alluxio OTeam 开源协同团队负责人。主要负责腾讯 Alluxio 的研发和落地工作和 Apache Ozone 的文件系统方向的研发工作。 DOP(Data Orchestration Platform) 是腾讯推出的数据编排平台服务。定位通用数据编排。无论是大数据和AI,无论公有云、私有云和腾讯内网都在使用统一的数据编排平台 DOP,如腾讯云DLC、EMR等产
腾讯云大数据
2022/09/27
1.9K0
腾讯云发布新品数据编排平台(dop)-与大数据生态紧密结合,提供通用数据编排服务
CubeFS - 新一代云原生存储系统
CubeFS 是一种新一代云原生存储系统,支持 S3、HDFS 和 POSIX 等访问协议,支持多副本与纠删码两种存储引擎,为用户提供多租户、 多 AZ 部署以及跨区域复制等多种特性。
我是阳明
2024/05/07
1.6K0
CubeFS - 新一代云原生存储系统
推荐阅读
相关推荐
深入解析Hadoop高频面试题:HDFS读/写流程的RPC调用链
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档