Use HBase with Ozone
Prerequisites
To integrate HBase with Ozone, you need an up-and-running ADH cluster (version 4.3.0 and above) with at least the following services installed:
-
Core configuration;
-
ADPG;
-
Zookeeper;
-
YARN;
-
HBase;
-
Ozone.
In this example it is expected that the Ozone’s ozone.service.id parameter is set to adho.
|
IMPORTANT
Consider the following restrictions before the setup:
|
Setup
-
In ADCM, open the HBase service configuration page and turn on the Use Ozone switch. Fill in the appeared configuration parameters — they will be used for automatic volume and bucket creation. For example, set them as follows:
-
Bucket Name —
data -
Ozone Quota —
10GB(optional) -
Ozone Replication —
ONE(optional) -
Ozone Replication Type —
RATIS(optional) -
Ozone Volume Name —
hbaseNOTECurrently, only theRATISreplication type is supported for Ozone buckets used for HBase data storage.
-
-
Expand the hbase-site.xml parameter group and set the hbase.unsafe.stream.capability.enforce parameter to
false. -
In the Ozone service configuration, expand the ozone-site.xml parameter group and set the following parameters to
true:-
ozone.client.hbase.enhancements.allowed
-
ozone.client.incremental.chunk.list
-
ozone.client.stream.putblock.piggybacking
-
ozone.fs.hsync.enabled
-
ozone.hbase.enhancements.allowed
-
-
Restart Ozone and HBase.
Create a table
-
On a host with the HBase client installed, run the HBase shell:
$ hbase shell -
Inside the shell, run the following command to create a table:
create 'test_ofs', 'cf'
-
Put some data into the table:
put 'test_ofs', 'row1', 'cf:qual1', 'value1' -
Verify the data presence:
scan 'test_ofs'The expected output is:
ROW COLUMN+CELL row1 column=cf:qual1, timestamp=2026-06-03T12:25:24.662, value=value1
-
Perform a flush to send data to physical storage:
flush 'test_ofs' -
Exit the HBase shell and verify the data presence in Ozone:
$ ozone fs -ls ofs://adho/hbase/data/data/default/test_ofsThe expected output should be similar to:
drwxrwxrwx - hbase macbook 0 2026-06-03 12:25 ofs://adho/hbase/data/data/default/test_ofs/.tabledesc drwxrwxrwx - hbase macbook 0 2026-06-03 12:25 ofs://adho/hbase/data/data/default/test_ofs/e61cde87de4f59b5f78327faecad5676
Delete a table
-
On a host with the HBase client installed, run the HBase shell:
$ hbase shell -
Inside the shell, run the following command to delete a row:
deleteall 'test_ofs', 'row1'
-
Verify the row deletion:
scan 'test_ofs'The expected output is:
hbase:003:0> scan 'test_ofs' ROW COLUMN+CELL 0 row(s)
-
Disable the table:
disable 'test_ofs' -
Delete the table:
drop 'test_ofs' -
Exit the HBase shell and verify that the data was physically removed from Ozone:
$ ozone fs -ls ofs://adho/hbase/data/data/default/test_ofsThe expected output is:
ls: `ofs://adho/hbase/data/data/default/test_ofs': No such file or directory