Ролевая модель доступа к данным в HDFS SDP#

Для разграничения доступов между сервисами Abyss рекомендуется использовать следующую модель. Данная модель предполагает создание дублирующей (резервной) учетной записи для каждого сервиса (в таблице ниже эти ТУЗ имеют приписку _res), необходимой для бесшовного процесса смены Kerberos Keytab (переключение между ТУЗ необходимо осуществлять ближе к моменту окончания срока жизни Keytab).

Каталог в HDFS

Права (рекурсивно)

Группа доступа

Состав группы (ТУЗ)

Сервис

Параметр

Пример директории

Описание

<stand_id>/druid

770

abyss-<stand_id>-druid_rw

abyss-<stand_id>-druid, abyss-<stand_id>-druid_res, abyss-<stand_id>-monitoring, abyss-<stand_id>-monitoring_res

Druid

druid.storage.storageDirectory

<stand_id>/druid/segments

хранение исторических данных

Druid

druid.indexer.logs.directory

<stand_id>/druid/logs

хранение логов задач Druid

Monitoring

service.analytical.dictionary.store-path

<stand_id>/druid/dictionaries

хранение словарей

<stand_id>/flink

770

abyss-<stand_id>-flink_rw

abyss-<stand_id>-flink, abyss-<stand_id>-flink_res

Flink

state.checkpoints.dir

<stand_id>/flink/checkpoints

хранение checkpoints Flink

Flink

high-availability.storageDir

<stand_id>/flink/ha

хранение метаданных кластера Flink

Flink

state.savepoints.dir

<stand_id>/flink/savepoints

хранение savepoints Flink

Flink

jobmanager.archive.fs.dir

<stand_id>/flink/completed-jobs

хранение данных о завершенных задачах FLink

Flink

historyserver.archive.fs.dir

<stand_id>/flink/completed-jobs

хранение данных о завершенных задачах FLink

<stand_id>/archive

770

abyss-<stand_id>-archive_rw

abyss-<stand_id>-archive, abyss-<stand_id>-archive_res, abyss-<stand_id>-flink, abyss-<stand_id>-flink_res

Archive

service.archive.hdfs.storage.sources-path

<stand_id>/archive/sources

хранение данных архива

Archive

service.archive.hdfs.storage.temporary-path

<stand_id>/archive/temporary

хранение промежуточных данных архива

Archive

service.archive.hdfs.storage.query-results-path

<stand_id>/archive/results

хранение результатов запросов в архив

Archive

service.archive.spark.event-logging-dir

<stand_id>/archive/sparkLogs

хранение логов задач поднятия данных из архива

Archive

service.archive.spark.configuration.common.additional-properties[spark.yarn.stagingDir]

<stand_id>/archive/sparkStaging

хранение промежуточных результатов при запросе данных из архива

Где:

  • stand_id - произвольный идентификатор стенда;

Идентификация ТУЗ: По протоколу Kerberos. Kerberos Keytab хранятся в Secret Management System.

Пользователь для доступа к HDFS задается параметром hadoop.user.name для сервисов Abyss

В SDP целевым средством управления доступом в HDFS является Ranger, все доступы настраиваются в нем.

Для корректной работы требуется добавить в HDFS SDP в блок custom-core-site параметры. Значения в скобках требуется заменить на соответствующих пользователей из таблицы выше: hadoop.proxyuser.abyss-<stand_id>-druid.groups=* hadoop.proxyuser.abyss-<stand_id>-druid.hosts=* hadoop.proxyuser.abyss-<stand_id>-flink.groups=* hadoop.proxyuser.abyss-<stand_id>-flink.hosts=* hadoop.proxyuser.abyss-<stand_id>-archive.groups=* hadoop.proxyuser.abyss-<stand_id>-archive.hosts=* hadoop.proxyuser.abyss-<stand_id>-monitoring.groups=* hadoop.proxyuser.abyss-<stand_id>-monitoring.hosts=* hadoop.proxyuser.abyss-<stand_id>-druid_res.groups=* hadoop.proxyuser.abyss-<stand_id>-druid_res.hosts=* hadoop.proxyuser.abyss-<stand_id>-flink_res.groups=* hadoop.proxyuser.abyss-<stand_id>-flink_res.hosts=* hadoop.proxyuser.abyss-<stand_id>-archive_res.groups=* hadoop.proxyuser.abyss-<stand_id>-archive_res.hosts=* hadoop.proxyuser.abyss-<stand_id>-monitoring_res.groups=* hadoop.proxyuser.abyss-<stand_id>-monitoring_res.hosts=*