Ozone 是一个多协议存储系统,支持以下接口:
用于访问Ozone的命令行(CLI):
ozone sh object action url
,此命令中的object可以是volume/bucket/key,兼容o3接口。Ozone 客户端可以将 Ozone 作为文件系统和key-value存储进行访问,当 Ozone 与 HDFS 依赖项一起安装时,Ozone支持HDFS客户端命令,如hdfs dfs,如果ozone不是defaultfs,需要指定URI路径。
1.列出HDFS 中存储的文件。
ozone fs -ls /
2.列出sid ozone1的当前Ozone文件系统:
ozone1为配置的Ozone Service ID:
3.volume是Ozone 文件系统的最高级别,用于管理存储key的存储桶,可以对volume应用配额和用户权限以进行高级文件系统管理。创建名为 vol1 的volume:
ozone fs -mkdir ofs://ozone1/vol1
4.列出ozone1 文件系统以查看volume:
ozone fs -ls ofs://ozone1/
5.在vol1 中创建一个bucket,名称为bucket1,bucket用于存储文件。
ozone fs -mkdir ofs://ozone1/vol1/bucket1
6.列出卷和存储桶vol1/bucket1:
ozone fs -ls ofs://ozone1/vol1
7.OFS 模仿传统的文件系统,前两级volume和bucket看起来像目录,但是你不能使用顶级volume来存储key(文件)。当我们添加一个key(文件)时,上传的文件内容会被存储到该key名称下。key是一个混合文件名,它可以是存储在存储桶根部的文件名,也可以是带有文件名的存储桶的目录路径。需要注意的是,卷和存储桶有命名限制,并且不允许使用某些字符和大小写,但key没有这些限制。OFS必须使用/volume/bucket,即文件必须至少有两级目录,/tmp是兼容Hadoop文件系统的唯一例外。还有EC和加密是在bucket级别的。诸如这些限制,如果从HDFS迁移到Ozone,可能会有一些路径变化!
8.上传文件到bucket1:
sudo cp /var/log/cloudera-scm-agent/cloudera-scm-agent.log /tmp/cloudera-scm-agent.log
ozone fs -put /tmp/cloudera-scm-agent.log ofs://ozone1/vol1/bucket1
9.在/vo1/bucket1中查看存储为key的文件:
ozone fs -ls ofs://ozone1/vol1/bucket1
10.查看存储的key文件内容:
ozone fs -cat ofs://ozone1/vol1/bucket1/cloudera-scm-agent.log | head -10
11.当使用ozone fs 删除文件时,该文件不会立即从 Ozone 中删除。文件会被移动到隐藏的.Trash
目录,用户可以在/user/<username>/.Trash/Current
路径下进行访问。要绕过回收站快速释放磁盘空间,可以在加-skipTrash
标志。
ozone fs -rm -r -skipTrash ofs://ozone1/vol1/bucket1/cloudera-scm-agent.log
将Ozone作为key-value存储访问。
1.创建一个volume /vol2
ozone sh volume create o3://ozone1/vol2
### 或者
ozone sh volume create /vol2
ozone sh volume info /vol2
2.在/vol2下创建桶bucket1
ozone sh bucket create /vol2/bucket1
ozone sh bucket info /vol2/bucket1
3.将key插入到bucket中
echo “Random text” > key1
ozone sh key put /vol2/bucket1/key1 key1
ozone sh key info /vol2/bucket1/key1