Настройка внешней БД PostgreSQL для хранения метаданных Ranger
Обзор
Сервисное действие Migrate DB schema позволяет провести миграцию схемы базы данных и сервисных пользователей из внутренней базы данных на внешнюю. Миграция доступна для компонентов Ranger KMS и Ranger Admin.
Чтобы подготовить сервер БД и хосты кластера к миграции, следуйте шагам ниже.
ПРИМЕЧАНИЕ
Перед миграцией на внешнюю БД убедитесь в том, что она настроена и доступна.
|
Настройка сервера PostgreSQL
Ниже представлен пример настройки сервера PostgreSQL на машине с CentOS 7:
-
Во избежание ошибочного разрешения зависимостей отредактируйте файл /etc/yum.repos.d/CentOS-Base.repo, добавив следующую строку в конце секций
[base]
и[updates]
:exclude=postgresql*
-
Установите пакет настройки PostgreSQL.
$ sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
-
Установите требуемую версию сервера PostgreSQL.
$ sudo yum install postgresql<N>-server
где
<N>
— поддерживаемая версия сервера (далее будет использоваться 12). -
Создайте новый кластер БД.
$ sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
-
Запустите сервис PostgreSQL с помощью
systemctl
.$ sudo systemctl enable postgresql-12 --now
-
Проверьте наличие доступа к консоли psql.
$ sudo -i -u postgres; psql
Дальнейшие действия зависят от компонента, для которого производится настройка. Команды ниже следует запускать в консоли psql.
-
Создайте пользователя для сервиса Ranger KMS.
CREATE USER rangerkms WITH PASSWORD '<password>';
где
<password>
— пароль для пользователяrangerkms
. -
Создайте базу данных для сервиса.
CREATE DATABASE rangerkms;
-
Выдайте созданному пользователю все права на базу данных.
GRANT ALL PRIVILEGES ON DATABASE rangerkms TO rangerkms;
-
Добавьте в файл /var/lib/pgsql/12/data/pg_hba.conf следующую строку:
host rangerkms rangerkms <ranger_kms_host>/32 trust
где
<ranger_kms_host>
— хост с установленным компонентом Ranger KMS. В вашей системе файл может быть расположен по другому пути.
-
Создайте пользователя для сервиса Ranger Admin.
CREATE USER rangeradmin WITH PASSWORD '<password>';
где
<password>
— пароль для пользователяrangeradmin
. -
Создайте базу данных для сервиса.
CREATE DATABASE ranger;
-
Выдайте созданному пользователю все права на базу данных.
GRANT ALL PRIVILEGES ON DATABASE ranger TO rangeradmin;
-
Добавьте в файл /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, это нужно сделать. Следуйте шагам ниже:
-
Скачайте драйвер. Вы также можете получить его на сайте 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
-
Установите драйвер при помощи yum.
$ yum localinstall jdbc-postgresql-42.5.4-1036.el7.noarch.rpm
-
Убедитесь, что файл jdbc-postgresql.jar появился в директории /usr/share/java/.
-
Выполните настройку в ADCM.
-
На странице Clusters найдите ваш кластер ADPS и кликните по его имени.
-
На вкладке Services нажмите Ranger.
-
На открывшейся странице настроек разверните группу параметров 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
.
-
-
В группе параметров Ranger KMS install.properties присвойте параметру
DB_FLAVOR
значениеPOSTGRES
. -
Нажмите Save.
-
На странице Clusters найдите ваш кластер ADPS и кликните по его имени.
-
На вкладке Services нажмите Ranger.
-
На открывшейся странице настроек разверните группу параметров 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
.
-
-
В группе параметров Ranger Admin install.properties присвойте параметру
DB_FLAVOR
значениеPOSTGRES
. -
Нажмите Save.