Конференция Arenadata
ArenaTech 2026 – для всех, кому интересны технологии Big Data
Приглашаем вас принять участие в технической онлайн-конференции, посвященной работе с большими данными. Участие бесплатно для всех желающих.

В программе 3 блока докладов:

  • СУБД: архитектура и эксплуатация. Обсудим новые возможности Greengage DB и Arenadata DB на его основе, включая hot standby, обзор утилиты изменения кластерной топологии ggrebalance, вопросы безопасности и устранения CVE.
  • Платформа данных: безопасность и Kubernetes в ADH, аналитика в ADQM. Расскажем об управлении секретами и доступом в Arenadata Hyperwave с использованием OpenBao, особенности переноса сервисов в Kubernetes, а также про аналитические методы в инструментах ADQM.
  • Инструменты: кластерный менеджер, документация, ИИ-поиск. Поделимся опытом разработки технической документации (включая интеллектуальный поиск и ИИ-ассистент) и поговорим про развитие нашего кластерного менеджера ADCM.
Онлайн-конференция состоится 29 октября 2026 года, время трансляции: с 12:00 до 19:00 по московскому времени.
Осталось до события

Использование chained-плагина Hive для HDFS and Ozone

Chained-плагины предоставляют возможность настроить только плагин Hive SQL, на основе которого будут автоматически сформированы политики хранения (storage policies). Описанная функциональность реализуется с помощью Resource Mapping Manager.

Предварительные требования

  1. Активируйте плагин Ranger Hive.

  2. Для HDFS активируйте плагин Ranger HDFS со включенным параметром Hive SQL support.

  3. Для Ozone активируйте плагин Ranger Ozone с активированным параметром Hive SQL support. Ozone должен быть интегрирован с сервисами кластера.

  4. Создайте в Hive базу данных и таблицу с данными:

    CREATE DATABASE testdb;
    CREATE TABLE testdb.test_table (id INT, name STRING)
    STORED AS PARQUET;
    
    INSERT INTO testdb.test_table VALUES (1, 'hello'), (2, 'world');

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

  • HDFS

  • Ozone

  1. Проверьте, что данные появились в HDFS:

    $ hdfs dfs -ls /apps/hive/warehouse/testdb.db/test_table

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

    Found 1 items
    -rw-r--r--   3 hive hadoop        618 2026-04-20 11:32 /apps/hive/warehouse/testdb.db/test_table/000000_0
  2. Проверьте наличие маппингов Ranger:

    $ cat <mappings_location>

    где <mappings_location> соответствует значению параметра ranger.plugin.hdfs.hive.resource.mappings.file.location HDFS.

  3. Создайте в Ranger политику Hive со следующими параметрами:

    • Policy Name — test-chained-read

    • Hive Database — testdb

    • Hive Table — test_table

    • Column — *

    • Allow Conditions → Select Users — test_user

    • Allow Conditions → Permissions — select

  4. Считайте данные из HDFS:

    $ sudo -su test_user hdfs dfs -cat /apps/hive/warehouse/testdb.db/test_table/000000_0

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

    PAR1???00?ʃhelloworld&helloworldJR^<H
                                         hive_schema%id
                                                       %name%L,&idJJ<(<)&??<&
                                                                             name^^&R<6(worldhello<&??@??Lwriter.time.zoneEtc/UTCwriter.model.name4.0.1writer.date.prolepticfalsewriter.zone.conversion.legacyfalseJparquet-mr version 1.15.2 (build 859eac165b08f927fa14590c33bc5f476405fb68),?PAR1

    Если права настроены некорректно, то вы получите следующую ошибку:

    cat: org.apache.ranger.authorization.hadoop.exceptions.RangerAccessControlException:
    Permission denied: user=test_user, access=EXECUTE, inode="/apps/hive/warehouse/testdb.db/test_table/000000_0"
  1. Проверьте, что данные появились в Ozone:

    $ ozone fs -ls ofs://adhom/apps/hive/warehouse/testdb.db/test_table

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

    Found 1 items
    drwxrwxrwx   - hive macbook          0 2026-04-21 12:28 ofs://adhom/apps/hive/warehouse/testdb.db/test_table/000000_0
  2. Проверьте наличие маппингов Ranger:

    $ cat <mappings_location>

    где <mappings_location> соответствует значению параметра ranger.plugin.ozone.hive.resource.mappings.file.location HDFS.

  3. Создайте в Ranger политику Hive со следующими параметрами:

    • Policy Name — test-chained-read

    • Hive Database — testdb

    • Hive Table — test_table

    • Column — *

    • Allow Conditions → Select Users — test_user

    • Allow Conditions → Permissions — select

  4. Считайте данные из Ozone:

    $ sudo -su test_user ozone fs -cat ofs://adhom/apps/hive/warehouse/testdb.db/test_table/000000_0

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

    PAR1???00?ʃhelloworld&helloworldJR^<H
                                         hive_schema%id
                                                       %name%L,&idJJ<(<)&??<&
                                                                             name^^&R<6(worldhello<&??@??Lwriter.time.zoneEtc/UTCwriter.model.name4.0.1writer.date.prolepticfalsewriter.zone.conversion.legacyfalseJparquet-mr version 1.15.2 (build 859eac165b08f927fa14590c33bc5f476405fb68),?PAR1

    Если права настроены некорректно, то вы получите следующую ошибку:

    cat: User test_user doesn't have READ permission to access key Volume:apps Bucket:hive Key:warehouse/testdb.db/test_table/000000_0
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней