### Run Boto3 Example Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/Boto3Tutorial.md Execute the Python script to perform S3 operations against Ozone. This verifies the Boto3 setup and connectivity. ```bash python ozone_boto3_example.py ``` -------------------------------- ### Start Ozone Docker Cluster Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/PythonRequestsOzoneHttpFS.md Download the Ozone Docker Compose file and start the cluster with 3 DataNodes. Ensure Docker and Docker Compose are installed. ```bash curl -O https://raw.githubusercontent.com/apache/ozone-docker/latest/docker-compose.yaml docker compose up -d --scale datanode=3 ``` -------------------------------- ### Start Ozone Docker Cluster Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/PyArrowTutorial.md Download the Docker Compose file and start the Ozone cluster with 3 DataNodes. Ensure Docker and Docker Compose are installed. ```bash curl -O https://raw.githubusercontent.com/apache/ozone-docker/refs/heads/latest/docker-compose.yaml docker compose up -d --scale datanode=3 ``` -------------------------------- ### OFS Path Examples Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/Ofs.md Examples of valid OFS paths, illustrating access to the root, specific Ozone Managers, volumes, buckets, and keys. ```text ofs://om1/ ofs://om3:9862/ ofs://omservice/ ofs://omservice/volume1/ ofs://omservice/volume1/bucket1/ ofs://omservice/volume1/bucket1/dir1 ofs://omservice/volume1/bucket1/dir1/key1 ofs://omservice/tmp/ ofs://omservice/tmp/key1 ``` -------------------------------- ### Build grpc from Sources Source: https://github.com/apache/ozone/blob/master/tools/fault-injection-service/README.md Steps to clone, build, and install grpc from its source repository. Ensure build-essential and other prerequisites are installed first. ```bash sudo apt install -y build-essential autoconf libtool pkg-config ``` ```bash git clone --recurse-submodules -b v1.35.0 https://github.com/grpc/grpc ``` ```bash mkdir -p cmake/build pushd cmake/build cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF\ -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR ../.. make -j make install ``` -------------------------------- ### Start Recon Server Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/Recon.md Use this command to start the Recon service as a daemon. Ensure the ozone command-line tool is available in your environment. ```bash ozone --daemon start recon ``` -------------------------------- ### Start Ozone with Docker Compose Source: https://github.com/apache/ozone/blob/master/README.md Navigate to the Ozone distribution directory and use Docker Compose to start Ozone services, scaling datanodes as needed. ```bash cd hadoop-ozone/dist/target/ozone-*/compose/ozone docker compose up -d --scale datanode=3 ``` -------------------------------- ### Example: List OM roles for cluster1 Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/OM-HA.md Example of listing OM roles for a cluster identified by 'cluster1'. ```bash ozone admin om roles -id cluster1 ``` -------------------------------- ### Example: Writing to a key using OzoneDataStreamOutput Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/Streaming-Write-Pipeline.md An example demonstrating how to create a key and write data to it using `OzoneDataStreamOutput` from a memory-mapped buffer. ```APIDOC Below is an example to create a key from a local file using a memory-mapped buffer. ```java // Create a memory-mapped buffer from a local file: final FileChannel channel = ... // local file channel final long length = ... // length of the data final ByteBuffer mapped = channel.map(FileChannel.MapMode.READ_ONLY, 0, length); // Create an OzoneDataStreamOutput final OzoneBucket bucket = ... // an Ozone bucket final String key = ... // the key name final OzoneDataStreamOutput out = bucket.createStreamKey(key, length); // Write the memory-mapped buffer to the key output out.write(mapped); // close out.close(); // In practice, use try-with-resource to close it. channel.close(); // In practice, use try-with-resource to close it. ``` ``` -------------------------------- ### Compile libo3fs_write.c Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/native-client/README.md Compiles the libo3fs_write.c example file into an object file. This is part of the libo3fs examples. ```bash gcc -fPIC -pthread -I {OZONE_HOME}/native-client/libo3fs -I {HADOOP_HOME}/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/include -g -c libo3fs_write.c ``` -------------------------------- ### Install Boto3 Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/Boto3Tutorial.md Install the Boto3 library for Python using pip. This is required to interact with Ozone's S3 Gateway. ```bash pip install boto3 ``` -------------------------------- ### Start Prometheus Server Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/Prometheus.md Run the Prometheus binary from the directory containing your prometheus.yaml configuration file to start the monitoring server. ```bash prometheus ``` -------------------------------- ### Example: List OM roles for cluster1 as a table Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/OM-HA.md Example of listing OM roles for a cluster identified by 'cluster1', with the output formatted as a table. ```bash ozone admin om roles -id cluster1 --table ``` -------------------------------- ### Compile libo3fs_read.c Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/native-client/README.md Compiles the libo3fs_read.c example file into an object file. This is part of the libo3fs examples. ```bash gcc -fPIC -pthread -I {OZONE_HOME}/native-client/libo3fs -I {HADOOP_HOME}/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/include -g -c libo3fs_read.c ``` -------------------------------- ### Start Ozone Cluster with Single Datanode Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/dist/src/main/compose/ozone/README.md Use this command to quickly start a basic Ozone cluster with a single datanode for testing. ```bash ./run.sh -d ``` -------------------------------- ### Start Docker Compose Environment Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/dist/src/main/compose/ozonescripts/README.md Use this command to start the Docker Compose environment for the Ozone cluster. This command initiates the necessary containers and their SSH daemons. ```bash docker-compose up -d ``` -------------------------------- ### Start Ozone Cluster with Docker Compose Source: https://github.com/apache/ozone/blob/master/README.md Start an Ozone cluster using Docker Compose. The replication factor can be adjusted via the OZONE_REPLICATION_FACTOR environment variable. ```bash docker compose up -d --scale datanode=3 ``` -------------------------------- ### Interactive Mode Notice Example Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/dist/src/main/license/bin/licenses/LICENSE-javax.interceptor-javax.interceptor-api.txt This is an example of a notice displayed when a program starts in interactive mode. It includes version, copyright, warranty, and redistribution information. ```text Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. ``` -------------------------------- ### Complete Ozone Java API Example Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/JavaApi.md A comprehensive example showing client creation, volume and bucket management, writing a key, and reading it back. Remember to close the client when finished. ```java // Let us create a client OzoneClient ozClient = OzoneClientFactory.getClient(); // Get a reference to the ObjectStore using the client ObjectStore objectStore = ozClient.getObjectStore(); // Let us create a volume to store our game assets. // This default arguments for creating that volume. objectStore.createVolume("assets"); // Let us verify that the volume got created. OzoneVolume assets = objectStore.getVolume("assets"); // Let us create a bucket called videos. assets.createBucket("videos"); OzoneBucket video = assets.getBucket("videos"); // read data from the file, this is assumed to be a user provided function. byte [] videoData = readFile("intro.mp4"); // Create an output stream and write data. OzoneOutputStream videoStream = video.createKey("intro.mp4", 1048576); videoStream.write(videoData); // Close the stream when it is done. videoStream.close(); // We can use the same bucket to read the file that we just wrote, by creating an input Stream. // Let us allocate a byte array to hold the video first. byte[] data = new byte[(int)1048576]; OzoneInputStream introStream = video.readKey("intro.mp4"); introStream.read(data); // Close the stream when it is done. introStream.close(); // Close the client. ozClient.close(); ``` -------------------------------- ### Show Create Volume Help Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/Cli.md Get detailed command line options for the 'create' action on volumes. ```bash ozone sh volume create --help ``` -------------------------------- ### New Flow: Multipart Upload Initiate Example Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/design/mpu-gc-optimization.md Illustrates the new flow for initiating a multipart upload by writing to `multipartMetadataTable` and `openKeyTable`, without using `multipartInfoTable` for new V1 MPU writes. ```text multipartMetadataTable[/vol1/b1/fileA/upload-001] -> MultipartMetadata{schemaVersion=1, replication=RATIS/THREE, objectID=9001} openKeyTable[/vol1/b1/fileA/upload-001] -> OmKeyInfo{key=fileA, locations=[empty]} ``` -------------------------------- ### Start Ozone Cluster from Released Artifact Source: https://github.com/apache/ozone/blob/master/README.md Start an Ozone cluster using Docker Compose after untarring a downloaded binary release package. This provides a more realistic cluster setup. ```bash cd compose/ozone docker compose up -d --scale datanode=3 ``` -------------------------------- ### Start DiskBalancer with Custom Configuration Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/DiskBalancer.md Starts the DiskBalancer with specific configuration parameters for threshold percentage, bandwidth, and parallel threads. Use short or long option forms as needed. ```bash ozone admin datanode diskbalancer start DN-1 -t 5 -b 20 -p 5 ``` ```bash ozone admin datanode diskbalancer start DN-1 --threshold-percentage 5 -b 20 -p 5 ``` -------------------------------- ### GET /api/v1/keys/open/summary Response Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/ReconApi.md Example JSON response for a summary of all open keys in the cluster. It provides total counts for open keys and their data sizes. ```json { "totalOpenKeys": 8, "totalReplicatedDataSize": 90000, "totalUnreplicatedDataSize": 30000 } ``` -------------------------------- ### Run Ozone in Docker Compose Source: https://github.com/apache/ozone/blob/master/CONTRIBUTING.md Start a pseudo-cluster for Ozone using Docker Compose. Set the OZONE_REPLICATION_FACTOR environment variable before running the script. This requires docker, docker-compose, and jq to be installed. ```bash cd hadoop-ozone/dist/target/ozone-*-SNAPSHOT/compose/ozone OZONE_REPLICATION_FACTOR=3 ./run.sh -d ``` -------------------------------- ### Shortcut Cluster Startup Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/start/OnPrem.md A simplified method to initialize SCM and OM, then start the entire Ozone cluster using `start-ozone.sh`. This assumes the `workers` file is correctly configured and SSH access to all data nodes is established. ```bash ozone scm --init ozone om --init start-ozone.sh ``` -------------------------------- ### GET /api/v1/keys/open/mpu/summary Response Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/ReconApi.md Example JSON response for a summary of open multipart-upload keys. Note the naming difference for unreplicated data size compared to the general open keys summary. ```json { "totalOpenMPUKeys": 2, "totalReplicatedDataSize": 90000, "totalDataSize": 30000 } ``` -------------------------------- ### Run O3FS Write Sample Application Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/native-cpp.md Execute the o3fs_write sample application to write a file to an Ozone bucket. This demonstrates basic file writing functionality using the native client. ```shell // o3fs_write writes a 100-byte file named 'file1' using a 100-byte buffer to the 'my-bucket' bucket in the 'my-volume' volume, // connecting to an Ozone Manager (om) on port 9862. ./o3fs_write file1 100 100 om 9862 my-bucket my-volume ``` -------------------------------- ### GET /api/v1/keys/open Response Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/ReconApi.md Example JSON response for retrieving open keys. It differentiates between FSO and non-FSO keys, providing details like key path, size, and replication information. ```json { "lastKey": "/vol1/fso-bucket/dir1/dir2/file2", "replicatedDataSize": 13824, "unreplicatedDataSize": 4608, "status": "OK", "fso": [ { "key": "/-9223372036854775552/-9223372036854774016/file1", "path": "/vol1/fso-bucket/dir1/file1", "inStateSince": 1667564193026, "size": 1024, "replicatedSize": 3072, "replicationInfo": { "replicationFactor": "THREE", "requiredNodes": 3, "replicationType": "RATIS" }, "creationTime": 1667564000000, "modificationTime": 1667564193026, "isKey": true } ], "nonFSO": [ { "key": "/vol1/bucket1/key1", "path": "/vol1/bucket1/key1", "inStateSince": 1667564193026, "size": 1024, "replicatedSize": 3072, "replicationInfo": { "replicationFactor": "THREE", "requiredNodes": 3, "replicationType": "RATIS" }, "creationTime": 1667564000000, "modificationTime": 1667564193026, "isKey": true } ] } ``` -------------------------------- ### Deploy and Execute o3fs_write Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/native-client/README.md Example command to execute the o3fs_write binary for writing a file to Ozone. Parameters include filename, file size, buffer size, host, port, bucket name, and volume name. ```bash ./o3fs_write filename file_size buffer_size host_name port_number bucket_name volume_name ``` ```bash ./o3fs_write file1 100 100 127.0.0.1 9862 bucket4 vol4 , where file1 is name of the file, 100 is file size and buffer size, "127.0.0.1 is host", 9862 is the port number, "bucket4" is bucket name and "vol4" is the volume name. ``` -------------------------------- ### Start Container Balancer with Default Settings Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/ContainerBalancer.md Use this command to initiate the Container Balancer with its default configuration parameters. ```bash ozone admin containerbalancer start ``` -------------------------------- ### Filter Records with --filter (regex) Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/tools/debug/Ldb.md Employ the 'regex' operator to filter records based on a regular expression pattern. This example selects volumes where the name starts with 'v' and ends with '2'. ```bash $ ozone debug ldb --db=/path/to/om.db scan --cf=volumeTable --filter="volume:regex:^v.*2$" ``` ```json { "/vol2": { "metadata": {}, "objectID": -73548, "updateID": 2384, "adminName": "om", "ownerName": "om", "volume": "vol2", "creationTime": 11980979907, "modificationTime": 1296280979900, "quotaInBytes": 417913685250, "quotaInNamespace": 100000000, "usedNamespace": 1, "acls": [ { "type": "USER", "name": "om", "aclScope": "ACCESS" } ], "refCount": 0 } } ``` -------------------------------- ### GET /api/v1/keys/deletePending Response Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/ReconApi.md Example JSON response for keys pending deletion. It includes aggregated size totals and a list of deleted key information, where each item contains details about one or more OmKeyInfo entries. ```json { "lastKey": "sampleVol/bucketOne/key_one", "replicatedDataSize": 1800000, "unreplicatedDataSize": 600000, "deletedKeyInfo": [ { "omKeyInfoList": [ { "volumeName": "sampleVol", "bucketName": "bucketOne", "keyName": "key_one", "dataSize": 200000, "replicatedSize": 600000, "replicationConfig": { "replicationFactor": "THREE", "requiredNodes": 3, "replicationType": "RATIS" }, "creationTime": 1717000000000, "modificationTime": 1717100000000 } ] }, ... ], "status": "OK" } ``` -------------------------------- ### Download Docker Compose Configuration Source: https://github.com/apache/ozone/blob/master/README.md Obtain the sample Docker Compose configuration file for setting up an Ozone cluster. ```bash curl -O https://raw.githubusercontent.com/apache/ozone-docker/refs/heads/latest/docker-compose.yaml ``` -------------------------------- ### Scan Volume Table with Start and End Keys Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/tools/debug/Ldb.md This example demonstrates scanning the 'volumeTable' column family within a specified RocksDB, using --startkey and --endkey to define the iteration range. The output shows the JSON representation of the records found within that range. ```bash $ ozone debug ldb --db=/path/to/om.db scan --cf=volumeTable --startkey=vol3 --endkey=vol5 ``` ```json { "/vol3": { "metadata" : { }, "objectID" : -9999, "updateID" : 4000, "adminName" : "om", "ownerName" : "om", "volume" : "vol3", "creationTime" : 1707192335309, "modificationTime" : 1714057412205, "quotaInBytes" : 22854448694951936, "quotaInNamespace" : 100000000, "usedNamespace" : 1, "acls" : [ { "type" : "USER", "name" : "om", "aclScope" : "ACCESS" } ], "refCount" : 0 } , "/vol4": { "metadata" : { }, "objectID" : -888, "updateID" : 5000, "adminName" : "om", "ownerName" : "om", "volume" : "vol4", "creationTime" : 1696280979907, "modificationTime" : 1696280979907, "quotaInBytes" : 2251799813685250, "quotaInNamespace" : 100000000, "usedNamespace" : 2, "acls" : [ { "type" : "USER", "name" : "om", "aclScope" : "ACCESS" } ], "refCount" : 0 } } ``` -------------------------------- ### Serve Hugo Site Locally Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/README.md Run this command to preview the rendered documentation locally. ```bash hugo serve ``` -------------------------------- ### Install Dependencies with pnpm Source: https://github.com/apache/ozone/blob/master/hadoop-ozone/recon/src/main/resources/webapps/recon/ozone-recon-web/README.md Installs all project dependencies using pnpm. Ensure pnpm is installed first. ```bash pnpm install ``` -------------------------------- ### Start Datanode Daemon Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/Nonrolling-Upgrade.md Starts a Datanode as a daemon process. This is a standard step in starting cluster components. ```bash ozone --daemon start datanode ``` -------------------------------- ### Start SCM Daemon Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/Nonrolling-Upgrade.md Starts the Storage Container Manager (SCM) as a daemon process. This is a standard step in starting cluster components. ```bash ozone --daemon start scm ``` -------------------------------- ### Start Default Compose Cluster Command Source: https://github.com/apache/ozone/blob/master/CLAUDE.md Starts the default compose cluster with a replication factor of 3. The cluster is started in detached mode. ```bash OZONE_REPLICATION_FACTOR=3 ./run.sh -d ``` -------------------------------- ### Create Ozone Volume and Bucket Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/O3fs.md Use these commands to create a volume and bucket if they do not already exist. These will serve as the backend store for OzoneFileSystem. ```bash ozone sh volume create /volume ozone sh bucket create /volume/bucket ``` -------------------------------- ### Example Word Count Output Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/SparkOzoneFSK8S.md This is an example of the expected output from the wordcount job. ```text ... name: 8 William: 3 this,': 1 SOUP!': 1 `Silence: 1 `Mine: 1 ordered.: 1 considering: 3 muttering: 3 candle: 2 ... ``` -------------------------------- ### Creating an Ozone Client Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/JavaApi.md Demonstrates how to obtain an Ozone client instance using the OzoneClientFactory. You can get a default RPC client or a client based on the system configuration. ```APIDOC ## Creating an Ozone client The Ozone client factory creates the ozone client. To get a RPC client we can call ```java OzoneClient ozClient = OzoneClientFactory.getRpcClient(); ``` If the user want to create a client based on the configuration, then they can call. ```java OzoneClient ozClient = OzoneClientFactory.getClient(); ``` and an appropriate client based on configuration will be returned. ``` -------------------------------- ### Install libfuse3 Dependencies Source: https://github.com/apache/ozone/blob/master/tools/fault-injection-service/README.md Installs necessary packages for libfuse3 on systems using yum. ```bash yum install fuse3.x86_64 fuse3-devel.x86_64 fuse3-libs.x86_64 ``` -------------------------------- ### Configure fs.defaultFS for PyArrow Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/Python.md Example configuration for core-site.xml to set the Ozone Manager endpoint for PyArrow's HadoopFileSystem. ```xml fs.defaultFS ofs://om:9862 Ozone Manager endpoint ``` -------------------------------- ### Install PyArrow Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/recipe/PyArrowTutorial.md Install the PyArrow library using pip. This is required for Python to interact with Ozone. ```bash pip install pyarrow ``` -------------------------------- ### New Flow: Multipart Upload List Parts Read Materialization Example (schemaVersion=1) Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/design/mpu-gc-optimization.md Demonstrates how part information is materialized on-the-fly for listing parts in the new flow when schemaVersion is 1, linking multipartPartTable entries to openKeyTable details. ```text multipartPartTable[OmMultipartPartKey{uploadId="upload-001", partNumber=2}] -> openKey=/vol1/b1/fileA#c2 openKeyTable[/vol1/b1/fileA#c2] -> KeyInfo{size=40MB, eTag=...} listParts response partNumber=2, size=40MB, eTag=... ``` -------------------------------- ### Compile Sample Applications Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/native-cpp.md Compile the C source files for sample applications that use the O3FS library. Ensure the include paths for O3FS and Hadoop are correctly set. ```bash cd $OZONE_HOME/hadoop-ozone/native-client/libo3fs-examples gcc -fPIC -pthread -I$OZONE_HOME/hadoop-ozone/native-client/libo3fs \ -I$HADOOP_HOME/include -g -c libo3fs_read.c gcc -fPIC -pthread -I$OZONE_HOME/hadoop-ozone/native-client/libo3fs \ -I$HADOOP_HOME/include -g -c libo3fs_write.c ``` -------------------------------- ### Install fsspec for WebHDFS Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/Python.md Installs the fsspec Python module, which is required for interacting with Ozone via the WebHDFS interface. ```shell pip install fsspec ``` -------------------------------- ### Install requests for HttpFS Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/interface/Python.md Install the requests Python module, which is required for accessing Ozone via the HttpFS REST API. ```shell pip install requests ``` -------------------------------- ### Start Container Balancer with Custom Options Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/ContainerBalancer.md Initiate the Container Balancer with specific operational parameters to control its behavior during balancing. ```bash ozone admin containerbalancer start [options] ``` -------------------------------- ### Start DiskBalancer on All In-Service Datanodes Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/feature/DiskBalancer.md Starts the DiskBalancer on all datanodes that are currently in the IN_SERVICE state and healthy. This is useful for cluster-wide balancing. ```bash ozone admin datanode diskbalancer start --in-service-datanodes ``` -------------------------------- ### New Flow: Initiate Multipart Upload Example Source: https://github.com/apache/ozone/blob/master/hadoop-hdds/docs/content/design/mpu-gc-optimization.md Illustrates the key-value pair for `multipartInfoTable` in the new MPU flow after initiation, when `schemaVersion` is explicitly set to 1. ```text multipartInfoTable[/vol1/b1/fileA/upload-001] -> OmMultipartKeyInfo{schemaVersion=1, partKeyInfoList=[]} ```