Client Interfaces
Apache Ozone provides multiple ways for users and applications to interact with the storage system. These interfaces cater to different use cases, ranging from command-line administration to big data analytics and cloud-native object storage access.
Understanding these interfaces helps you choose the best way to integrate your applications with Ozone.
Available Interfaces
-
Ozone Shell (
o3
): A command-line interface (CLI) primarily used for administrative tasks like managing volumes and buckets, setting ACLs, and basic key operations. It interacts directly with the Ozone Manager (OM) via its RPC protocol. -
Ozone File System (
ofs
): A Hadoop Compatible File System (HCFS) implementation. It allows accessing Ozone using theofs://
scheme, providing filesystem semantics (directories, atomic renames/deletes) when used with FSO buckets. Ideal for Hadoop ecosystem tools (Spark, Hive, Impala, etc.). -
S3 Protocol: Ozone includes an S3-compatible gateway that translates Amazon S3 REST API calls into Ozone operations. This allows using standard S3 tools (AWS CLI, SDKs, Boto3) and applications designed for S3 to interact with Ozone, primarily with OBS buckets.
-
Hadoop S3A Connector (
s3a
): While primarily designed for AWS S3, the Hadoop S3A connector can be configured to talk to Ozone's S3 gateway. This allows Hadoop ecosystem tools to access Ozone via the S3 protocol using thes3a://
scheme, offering an alternative toofs://
, especially when S3 compatibility is preferred or required. Note that filesystem semantics might differ compared toofs://
. -
HTTPFS: A REST API endpoint, similar to HDFS WebHDFS/HttpFS, that provides filesystem-like access over HTTP. It can be used for basic file operations via standard HTTP tools like
curl
. -
Java Client API: A native Java library for programmatic interaction with Ozone. It provides comprehensive access to Ozone features, including volume, bucket, and key management, as well as data read/write operations. This is the most direct way for Java applications to integrate deeply with Ozone.
Choose the interface that best suits your application's needs, existing tooling, and desired access semantics (object store vs. filesystem).