搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

apache/ozone

运维与部署

面向 Hadoop 与云原生环境的分布式对象存储,支持 S3 与 HDFS API。

1,334
657
Java
Apache-2.0
创建于 7 年前

项目介绍

Apache Ozone 是一个可扩展、多副本、分布式的对象存储系统,面向 Hadoop 与云原生环境。它设计用于承载数十亿大小不一的对象,并能在 Kubernetes、YARN 等容器化环境中运行。

对部署决策有影响的特性:

  • 多协议访问:同时提供 S3 与 Hadoop File System API,现有的 S3 工具和 Hadoop 作业可以访问同一份存储。
  • 强一致:基于 RAFT 类协议实现强一致,而非最终一致。
  • 高可用:完全复制的设计,目标是在多次故障后仍可存活。
  • 安全:支持 Kerberos 认证、原生 ACL、Ranger 集成,以及 TDE 与传输加密。

它主要服务于数据分析与对象存储负载,是 Apache 软件基金会的顶级项目。

快速使用

最快的方式是用 Docker Compose 启动示例集群。需要 Docker 及 Compose 插件;如需验证 S3 访问,还需要 AWS CLI。

  1. 获取示例 Compose 文件:
curl -O https://raw.githubusercontent.com/apache/ozone-docker/refs/heads/latest/docker-compose.yaml
  1. 启动带三个 DataNode 的集群:
docker compose up -d --scale datanode=3

默认副本数为 1,可通过环境变量 OZONE_REPLICATION_FACTOR 调整。

  1. 配置访问凭据。示例集群未启用安全机制,任意密钥均可:
export AWS_ACCESS_KEY_ID=testuser/scm@EXAMPLE.COM
export AWS_SECRET_ACCESS_KEY=c261b6ecabf7d37d5f9ded654b1c724adac9bd9f13e247a235e567e8296d2999
  1. 通过 9878 端口的 S3 网关创建桶并上传文件:
aws s3api --endpoint http://localhost:9878/ create-bucket --bucket=wordcount
ls -1 > /tmp/testfile
aws s3 --endpoint http://localhost:9878 cp --storage-class REDUCED_REDUNDANCY /tmp/testfile s3://wordcount/testfile

如需更接近真实环境的集群,可从 Ozone 下载页 获取二进制发行包,解压后执行 cd compose/ozone && docker compose up -d --scale datanode=3。compose 目录还包含安全、HA 和 MapReduce 的示例配置,二进制包中也附带 Kubernetes 资源文件。

从源码构建需使用 Maven,命令为 mvn clean install -DskipTests;之后可在 hadoop-ozone/dist/target/ozone-*/compose/ozone 下启动 Docker Compose 集群。

使用约束

  • Compose 快速开始使用副本数 1 且未启用安全机制,属于开发/演示环境,不是生产配置。生产部署需另行规划副本、HA 以及 Kerberos/ACL。
  • S3 客户端需指向网关地址(示例中为 http://localhost:9878),而不是 AWS 默认端点。
  • 从源码构建需要 Apache Maven,上述命令会跳过测试。
  • 项目采用 Apache 2.0 许可证。

HotRepo 点评

在 2026-11-12 的 Java 日榜中,Ozone 位列第 16,当天 Star 数为 1,334、Fork 数为 657,Star 无变化。接近一半的 Fork/Star 比例在个人工具中并不常见,更符合团队需要部署和改造的存储平台特征。现有记录只有单日快照,只能说明当日榜单位置,不足以判断增长趋势。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

相关推荐

  1. ceph/ceph面向云与本地集群的分布式对象、块和文件存储平台。C++17,206
  2. juicedata/juicefs一个兼容 POSIX 的分布式文件系统,把数据存到对象存储、元数据存到 Redis 或 MySQL 等引擎。Go14,680
  3. trinodb/trino一个分布式 SQL 查询引擎,让分析人员用一条查询访问散落在多个存储里的数据,而不必先集中搬迁。Java13,374