Подключение к керберизованному Hive из DBeaver
-
Установите DBeaver CE.
ПримечаниеИспользуйте DBeaver CE версии 21.3.4 и выше. -
После установки DBeaver CE необходимо скопировать файл /etc/krb5.conf c Kerberos-сервера в папку C:\Program Files\DBeaver\jre\conf\security вашей машины Windows.
-
Отредактируйте файл krb5.conf, удалив все символы перед секцией
[libdefaults]
и закомментировав строкуrenew_lifetime = 7d
. -
Чтобы подключиться к Hive, необходимо также передать основной файл keytab. Создайте файл keytab, запустив утилиту
kadmin
на сервере Kerberos и выполнив следующую команду:$ xst -norandkey -k <file_name> <principal_name>
Например:
$ xst -norandkey -k hive.keytab hive/hive-kerberos.ru-central1.internal@ADREALM.IO
Файл krb5.conf должен иметь следующий вид:
krb5.conf[libdefaults] default_realm = ADREALM.IO dns_lookup_realm = false dns_lookup_kdc = false ticket_lifetime = 24h #renew_lifetime = 7d forwardable = true [realms] ADREALM.IO = { kdc = kerberos-server.ru-central1.internal admin_server = kerberos-server.ru-central1.internal } [domain_realm] .adrealm.io = ADREALM.IO adrealm.io = ADREALM.IO .adrealm.io = ADREALM.IO
-
Создайте файл jaas.conf в папке DBeaver. В этом файле необходимо задать путь к основному файлу keytab, используемому для подключения к Hive. Также необходимо указать имя принципала.
Файл jaas.conf должен иметь следующий вид:
jaas.confClient { com.sun.security.auth.module.Krb5LoginModule required doNotPrompt=true useKeyTab=true keyTab="C:/Users/Administrator/Downloads/hive.keytab" useTicketCache=false renewTGT=false principal="hive/hive-kerberos.ru-central1.internal@ADREALM.IO"; };
-
Создайте файл dbeaver.ini, расположенный в папке DBeaver, и добавьте пути к файлам jaas.conf и krb5.conf.
ПримечаниеФайлы jaas.conf и dbeaver.ini должны находиться в одной папке.dbeaver.ini-startup plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.200.v20210429-1609 -vmargs -XX:+IgnoreUnrecognizedVMOptions --add-modules=ALL-SYSTEM -Dosgi.requiredJavaVersion=11 -Xms64m -Xmx1024m -Djava.security.krb5.conf=C:\Program Files\DBeaver\jre\conf\security\krb5.conf -Djava.security.auth.login.config=jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false
-
Получите аутентификационный тикет, используя файл keytab. Для этого перейдите в каталог C:\Program Files\DBeaver\jre\bin и выполните следующую команду:
./kinit.exe -k -t keytab-file-path principal_name
Пример вывода:
New ticket is stored in cache file C:\Users\Administrator\krb5cc_Administrator
-
Скачайте JBDC-драйвер и распакуйте его в папку DBeaver.
-
Для запуска DBeaver перейдите в меню Database и выберите Driver Manager.
-
Выберите New.
Заполните необходимые поля:
-
Driver name: Hive Kerberos;
-
URL Template: jdbc:hive2://{host}:{port}/{database};principal=hive/hive-kerberos.ru-central1.internal@ADREALM.IO;
-
Default port: 10000;
-
Default Database: default.
-
-
Перейдите в Libraries и выберите файл драйвера hive-jdbc-3.1.1-arenadata-standalone.jar, который вы распаковали ранее. Выберите FindClass → org.apache.hive.jdbc.HiveDriver. Кликните Ok.
Создание драйвераСоздание драйвера -
Создайте новое подключение. Для этого:
-
Перейдите в Database → New Database Connection.
-
Выберите Hive Kerberos.
-
В Host укажите IP-адрес сервера Hive.
Создание нового соединенияСоздание нового соединения -
Кликните Test Connection для проверки соединения.
Проверка соединенияПроверка соединения
-
-
Кликните Finish.
Доступная база данных HiveДоступная база данных Hive