Использование HBase с Ozone

Требования

Для интеграции HBase с Ozone необходим функционирующий кластер ADH (версии 4.3.0 или более поздней) со следующим минимальным набором сервисов:

  • Core configuration;

  • ADPG;

  • Zookeeper;

  • YARN;

  • HBase;

  • Ozone.

В данном примере ожидается, что параметр Ozone ozone.service.id имеет значение adho.

ВАЖНО

Перед настройкой примите во внимание следующие ограничения:

  • Для сервиса Ozone должно быть установлено не менее трех компонентов Ozone Datanode.

  • Автоматической миграции HBase с HDFS на Ozone для существующих кластеров нет. Для подобной реконфигурации требуется удалить znode /hbase/meta-region-server в Zookeeper.

Настройка

  1. В интерфейсе ADCM откройте страницу настройки сервиса HBase и активируйте переключатель Use Ozone. Заполните появившиеся конфигурационные параметры — они будут использоваться для автоматического создания тома и бакета. Пример значений параметров:

    • Bucket Name — data

    • Ozone Quota — 10GB (опционально)

    • Ozone Replication — ONE (опционально)

    • Ozone Replication Type — RATIS (опционально)

    • Ozone Volume Name — hbase

      ПРИМЕЧАНИЕ
      На данный момент для бакетов Ozone, использующихся для хранения данных HBase, поддерживается только тип репликации RATIS.
  2. Раскройте группу параметров hbase-site.xml и присвойте параметру hbase.unsafe.stream.capability.enforce значение false.

  3. В настройках сервиса Ozone раскройте группу параметров ozone-site.xml и присвойте следующим параметрам значение true:

    • ozone.client.hbase.enhancements.allowed

    • ozone.client.incremental.chunk.list

    • ozone.client.stream.putblock.piggybacking

    • ozone.fs.hsync.enabled

    • ozone.hbase.enhancements.allowed

  4. Перезапустите Ozone и HBase.

Создание таблицы

  1. На хосте с установленным клиентом HBase запустите HBase shell:

    $ hbase shell
  2. Внутри shell запустите команду создания таблицы:

    create 'test_ofs', 'cf'
  3. Загрузите данные в таблицу:

    put 'test_ofs', 'row1', 'cf:qual1', 'value1'
  4. Проверьте наличие данных:

    scan 'test_ofs'

    Ожидаемый вывод:

    ROW                                   COLUMN+CELL
     row1                                 column=cf:qual1, timestamp=2026-06-03T12:25:24.662, value=value1
  5. Выполните команду flush для отправки данных в физическое хранилище:

    flush 'test_ofs'
  6. Выйдите из HBase shell и проверьте наличие данных в Ozone:

    $ ozone fs -ls ofs://adho/hbase/data/data/default/test_ofs

    Ожидаемый вывод должен быть похож на следующий:

    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

Удаление таблицы

  1. На хосте с установленным клиентом HBase запустите HBase shell:

    $ hbase shell
  2. Внутри shell запустите следующую команду для удаления строки:

    deleteall 'test_ofs', 'row1'
  3. Проверьте, что строка была удалена:

    scan 'test_ofs'

    Ожидаемый вывод:

    hbase:003:0> scan 'test_ofs'
    ROW                                   COLUMN+CELL
    0 row(s)
  4. Сделайте таблицу недоступной:

    disable 'test_ofs'
  5. Удалите таблицу:

    drop 'test_ofs'
  6. Выйдите из HBase shell и проверьте, что данные были физически удалены из Ozone:

    $ ozone fs -ls ofs://adho/hbase/data/data/default/test_ofs

    Ожидаемый вывод:

    ls: `ofs://adho/hbase/data/data/default/test_ofs': No such file or directory
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней