Настройка внешней БД PostgreSQL для хранения метаданных Ranger

Обзор

Сервисное действие Migrate DB schema позволяет провести миграцию схемы базы данных и сервисных пользователей из внутренней базы данных на внешнюю. Миграция доступна для компонентов Ranger KMS и Ranger Admin.

Чтобы подготовить сервер БД и хосты кластера к миграции, следуйте шагам ниже.

ПРИМЕЧАНИЕ
Перед миграцией на внешнюю БД убедитесь в том, что она настроена и доступна.

Настройка сервера PostgreSQL

Ниже представлен пример настройки сервера PostgreSQL на машине с CentOS 7:

  1. Во избежание ошибочного разрешения зависимостей отредактируйте файл /etc/yum.repos.d/CentOS-Base.repo, добавив следующую строку в конце секций [base] и [updates]:

    exclude=postgresql*
  2. Установите пакет настройки PostgreSQL.

    $ sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  3. Установите требуемую версию сервера PostgreSQL.

    $ sudo yum install postgresql<N>-server

    где <N> — поддерживаемая версия сервера (далее будет использоваться 12).

  4. Создайте новый кластер БД.

    $ sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
  5. Запустите сервис PostgreSQL с помощью systemctl.

    $ sudo systemctl enable postgresql-12 --now
  6. Проверьте наличие доступа к консоли psql.

    $ sudo -i -u postgres; psql

Дальнейшие действия зависят от компонента, для которого производится настройка. Команды ниже следует запускать в консоли psql.

  • Ranger KMS

  • Ranger Admin

  1. Создайте пользователя для сервиса Ranger KMS.

    CREATE USER rangerkms WITH PASSWORD '<password>';

    где <password> — пароль для пользователя rangerkms.

  2. Создайте базу данных для сервиса.

    CREATE DATABASE rangerkms;
  3. Выдайте созданному пользователю все права на базу данных.

    GRANT ALL PRIVILEGES ON DATABASE rangerkms TO rangerkms;
  4. Добавьте в файл /var/lib/pgsql/12/data/pg_hba.conf следующую строку:

    host    rangerkms          rangerkms     <ranger_kms_host>/32              trust

    где <ranger_kms_host> — хост с установленным компонентом Ranger KMS. В вашей системе файл может быть расположен по другому пути.

  1. Создайте пользователя для сервиса Ranger Admin.

    CREATE USER rangeradmin WITH PASSWORD '<password>';

    где <password> — пароль для пользователя rangeradmin.

  2. Создайте базу данных для сервиса.

    CREATE DATABASE ranger;
  3. Выдайте созданному пользователю все права на базу данных.

    GRANT ALL PRIVILEGES ON DATABASE ranger TO rangeradmin;
  4. Добавьте в файл /var/lib/pgsql/12/data/pg_hba.conf следующую строку:

    host    ranger          rangeradmin     <ranger_admin_host>/32              trust

    где <ranger_admin_host> — хост с установленным компонентом Ranger Admin. В вашей системе файл может быть расположен по другому пути. Если в вашем кластере присутствует несколько компонентов Ranger Admin, то подобную строку следует добавить для каждого хоста с Ranger Admin.

В завершение отредактируйте файл /var/lib/pgsql/12/data/postgresql.conf, присвоив параметру listen_addresses значение *, а параметру port — значение 5432.

После всех действий перезапустите сервис PostgreSQL:

$ sudo systemctl restart postgresql-12

Настройка хостов

Если вы ранее не устанавливали JDBC-драйвер PostgreSQL на хосты Ranger KMS/Ranger Admin, это нужно сделать. Следуйте шагам ниже:

  1. Скачайте драйвер. Вы также можете получить его на сайте PostgreSQL.

    $ wget https://downloads.adsw.io/ADH/3.2.4_arenadata2/centos/7/community/x86_64/jdbc-postgresql-42.5.4-1036.el7.noarch.rpm
  2. Установите драйвер при помощи yum.

    $ yum localinstall jdbc-postgresql-42.5.4-1036.el7.noarch.rpm
  3. Убедитесь, что файл jdbc-postgresql.jar появился в директории /usr/share/java/.

  4. Выполните настройку в ADCM.

  • Ranger KMS

  • Ranger Admin

  1. На странице Clusters найдите ваш кластер ADPS и кликните по его имени.

  2. На вкладке Services нажмите Ranger.

  3. На открывшейся странице настроек разверните группу параметров dbks-site.xml и установите значения для следующих параметров:

    • ranger.ks.jpa.jdbc.password — пароль для пользователя внешней БД.

    • ranger.ks.jpa.jdbc.url — строка подключения JDBC. Например, jdbc:postgresql://<database_host>:5432/rangerkms.

    • ranger.ks.jpa.jdbc.driver — имя класса JDBC-драйвера. Для PostgreSQL это org.postgresql.Driver.

    • ranger.ks.jdbc.sqlconnectorjar — путь к .jar-файлу JDBC-драйвера, например /usr/share/java/jdbc-postgresql.jar.

    • ranger.ks.jpa.jdbc.user — имя пользователя внешней БД, например, rangerkms.

  4. В группе параметров Ranger KMS install.properties присвойте параметру DB_FLAVOR значение POSTGRES.

  5. Нажмите Save.

  1. На странице Clusters найдите ваш кластер ADPS и кликните по его имени.

  2. На вкладке Services нажмите Ranger.

  3. На открывшейся странице настроек разверните группу параметров ranger-admin-site.xml и установите значения для следующих параметров:

    • ranger.jpa.jdbc.password — пароль для пользователя внешней БД.

    • ranger.jpa.jdbc.url — строка подключения JDBC. Например, jdbc:postgresql://<database_host>:5432/ranger.

    • ranger.jpa.jdbc.driver — имя класса JDBC-драйвера. Для PostgreSQL это org.postgresql.Driver.

    • ranger.jdbc.sqlconnectorjar — путь к .jar-файлу JDBC-драйвера, например /usr/share/java/jdbc-postgresql.jar.

    • ranger.jpa.jdbc.user — имя пользователя внешней БД, например, rangeradmin.

  4. В группе параметров Ranger Admin install.properties присвойте параметру DB_FLAVOR значение POSTGRES.

  5. Нажмите Save.

Миграция

  1. Запустите действие Migrate DB schema для Ranger.

  2. Выберите компоненты, для которых хотите выполнить миграцию.

    Опции для действия Migrate DB schema
    Действие Migrate DB schema
  3. Подтвердите действие.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней