Apache Ozone go client and fuse driver (experimental)

Clone this repo:
  1. 2e6f6e8 HDDS-5081. Fix key put implementation (#8) by Doroszlai, Attila · 1 year, 2 months ago master
  2. a0e7862 HDDS-5229. Update copyright year in NOTICE (#7) by Elek, Márton · 1 year, 3 months ago
  3. ab6d150 HDDS-5085. Create initial project structure with importing POC code (#6) by Elek, Márton · 1 year, 3 months ago
  4. 60b205b HDDS-5085. revert initial import (#3) by Elek, Márton · 1 year, 4 months ago
  5. 7e5a6f5 Turn off branch protection (#5) by Elek, Márton · 1 year, 4 months ago

Go client for Apache Ozone

This repository contains an experimental, proof-of-concept Golang client for Apache Ozone.

It's not ready yet for using in production / non-production.

The repository contains the following sub-modules

  • api: the location for the generic golang api for Apache Ozone
  • cli: standalone executable tool for main operations (similar to the original ozone sh)
  • lib: proof-of-concept shared C library
  • python: example python script uses the shared C library
  • HA failovoer is missing


  • api
    • main OM metadata operations worked well, but not all the fields are implemented
    • data read / write are implemented on some level but needs further work
    • security can be supported by the used Hadoop RPC implementation, but not tested
  • fuse
    • first working POC, files are successfully listed and files can be read
    • write is not implemented at all
    • requires major work
  • shared lib / python: very basic example, poc

Testing with cli:

cd cli
./ozone-go --om localhost volume create vol1

Or you can install it:

cd cli
go install
ozone -om volume create vol1

Testing Fuse file system

cd fuse
./ozone-fuse/ozone-fuse --om localhost --volume vol1 --bucket bucket1 /tmp/bucket1

Testing the python binding

Create the shared library:

go build -o ozone.so -buildmode=c-shared lib/lib.go

Modify parameters of python/test.py (om address) and run it.