Client Interfaces

Multi-Protocol Support

Ozone is a multi-protocol file system. There are different protocols by which users can access data on Ozone.

Ofs (Hadoop compatible)

Hadoop Compatible file system allows any application that expects an HDFS like interface to work against Ozone with zero changes. Frameworks like Apache Spark, YARN and Hive work against Ozone without needing any change. Global level view.

Ofs (Hadoop compatible)

O3fs (Hadoop compatible)

Hadoop Compatible file system allows any application that expects an HDFS like interface to work against Ozone with zero changes. Frameworks like Apache Spark, YARN and Hive work against Ozone without needing any change. Bucket level view.

O3fs (Hadoop compatible)

S3 Protocol

Ozone supports Amazon’s Simple Storage Service (S3) protocol. In fact, You can use S3 clients and S3 SDK based applications without any modifications with Ozone.

S3 Protocol

Command Line Interface

Ozone shell is the primary interface to interact with Ozone from the command line. Behind the scenes it uses the Java API.

Command Line Interface

Recon API

Recon server supports HTTP endpoints to help troubleshoot and monitor Ozone cluster.

Recon API

Java API

Ozone has a set of Native RPC based APIs. This is the lowest level API’s on which all other protocols are built. This is the most performant and feature-full of all Ozone protocols.

Java API

Accessing Apache Ozone from Python

Access Apache Ozone from Python using PyArrow, Boto3, requests and fsspec WebHDFS libraries

Accessing Apache Ozone from Python

CSI Protocol

Ozone supports Container Storage Interface(CSI) protocol. You can use Ozone by mounting an Ozone volume by Ozone CSI.

CSI Protocol

HttpFS Gateway

Ozone HttpFS is a WebHDFS compatible interface implementation, as a separate role it provides an easy integration with Ozone.

HttpFS Gateway

Native C/C++ Client Access to Ozone

Components Summary

  • libhdfs: The standard Hadoop C API. It is a JNI bridge between C/C++ and Java FileSystem implementations.
  • libo3fs: Lightweight wrapper exposing a simplified API for Ozone clients. It is built on top of libhdfs.
  • OFS (Ozone FileSystem): Java-based filesystem client used internally by libhdfs to interact with Ozone.

Overview

Native C/C++ applications can access Ozone volumes and buckets using Hadoop HDFS’s libhdfs JNI library. As an example, Apache Impala uses this library to access Ozone.

Native C/C++ Client Access to Ozone

Interactive Recon API Specification

Interactive Recon API Specification