Behavioral Changes in Ozone

Behavioral changes for Cloudera Runtime 7.3.2. introduce functional adjustments and behavioral updates for Ozone.

Cloudera Runtime 7.3.2

Migration of the ozone debug recover command to the admin om lease recover Ozone admin CLI command

The ozone debug recover command, used for lease recovery, now resides under the admin om lease recover Ozone admin CLI command.

Example,
# ozone admin om lease recover --path=ofs://<ozone.service.id>/hsyncvol/hsyncbuck/hsync/File_0.txt
Lease recovery SUCCEEDED on ofs://<ozone.service.id>/hsyncvol/hsyncbuck/hsync/File_0.txt
Changed functionality of the --all option in the ozone sh snapshot lsDiff command
Previous behavior:

Previously, the --all option was used to list snapshot diff jobs of any status.

New behavior:

Now, the --all option is used for listing limit. When the --all option is set, the listing limit is effectively set to Integer.MAX_VALUE. For the original --all behavior to list snapshot diff jobs, use the --all-status option instead.

Changed listing and deleting behavior at volume level
Previous behavior:

Previously, recursive listing and deleting a volume was supported using the ozone fs command that worked only if FSO bucket existed in volume.

New behavior:

Now, recursive listing and deleting a volume is supported only by using the ozone shell command and not the ozone fs command. The ozone shell command works for both OBS and FSO buckets inside a volume.

Example
  • Recursive delete command
    # ozone fs -rm -R -skipTrash ofs://ozone1713158544/vol/

    Sample output

    24/04/15 13:12:47 WARN ozone.BasicRootedOzoneFileSystem: Recursive volume delete using ofs is not supported
    rm: Recursive volume delete using ofs is not supported. Instead use 'ozone sh volume delete -r -skipTrash -id <OM_SERVICE_ID> <Volume_URI>' command
  • Recursive list command
    # ozone fs -ls -R ofs://ozone1713158544/vol/

    Sample output

    24/04/15 13:12:53 WARN ozone.BasicRootedOzoneFileSystem: Recursive root/volume list using ofs is not supported
    ls: Recursive list root/volume using ofs is not supported. Instead use 'ozone sh key list <Volume_URI>' command
Migration of the ozone debug chunkinfo API to the ozone debug replicas chunk-info API
Previous behavior:
Previously, the ozone debug chunkinfo API returned the following JSON response:
{
  "KeyLocations" : [ [ {
    "Locations" : {
      "files" : [ "<block_path>" ],
      "pipelineID" : "<pipeline_id>"
    },
    "Datanode-HostName" : "<host_name>",
    "Datanode-IP" : "<host_ip>",
    "Container-ID" : <id>,
    "Block-ID" : <blockid>
  },{},{}
]]}
New behavior:
Now, the ozone debug chunkinfo API is relocated to the ozone debug replicas chunk-info API and returns the following JSON response:
{
  "volumeName" : "<vol>",
  "bucketName" : "<buck>",
  "name" : "<key>",
  "keyLocations" : [ [ {
    "datanode" : {
      "hostname" : "<host_name>",
      "ip" : "<host_ip>",
      "uuid" : "<uuid>"
    },
    "file" : "<block_path>",
    "blockData" : {
      "blockID" : {
        "containerID" : <id>,
        "localID" : <localid>,
        "blockCommitSequenceId" : <bcsid>
      },
      "size" : <size>,
      "chunks" : [ {
        "offset" : <offset>,
        "len" : <len>,
        "checksums" : [ "<checksum>" ],
        "checksumType" : "<ctype>",
        "bytesPerChecksum" : <bpc>
      } ]
    }
  }, {}, {}
]]}
As part of this API update, the following keys are updated:
Table 1. JSON key mapping for the relocated ozone debug chunkinfo API
Key name Key in the previous JSON Key in the current JSON
Block path data["KeyLocations"][0][0]["Locations"]["files"][0] data["keyLocations"][0][0]["file"]
Container ID "Container-ID" blockData.blockID.containerID
Block ID "Block-ID" blockData.blockID.localID
Hostname "Datanode-HostName" datanode.hostname
The S3 Gateway web UI is moved to a new port
Previous behavior:

The S3 Gateway web UI was accessible on ports 9878 for HTTP and 9879 for HTTPS, just like S3 buckets.

New behavior:

The S3 Gateway web UI resides on new ports to avoid conflicts with S3 buckets. The new ports are 19878 for HTTP and 19879 for HTTPS.