apache/ozone
运维与部署面向 Hadoop 与云原生环境的分布式对象存储,支持 S3 与 HDFS API。
项目介绍
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。
- 获取示例 Compose 文件:
curl -O https://raw.githubusercontent.com/apache/ozone-docker/refs/heads/latest/docker-compose.yaml
- 启动带三个 DataNode 的集群:
docker compose up -d --scale datanode=3
默认副本数为 1,可通过环境变量 OZONE_REPLICATION_FACTOR 调整。
- 配置访问凭据。示例集群未启用安全机制,任意密钥均可:
export AWS_ACCESS_KEY_ID=testuser/scm@EXAMPLE.COM
export AWS_SECRET_ACCESS_KEY=c261b6ecabf7d37d5f9ded654b1c724adac9bd9f13e247a235e567e8296d2999
- 通过 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 生成,更新于 ,以项目官方文档为准。