Подключение к Hive из DBeaver с помощью Kerberos

  1. Установите DBeaver CE.

    Примечание
    Используйте DBeaver CE версии 21.3.4 и выше.
  2. После установки DBeaver CE необходимо скопировать файл /etc/krb5.conf c Kerberos-сервера в папку C:\Program Files\DBeaver\jre\conf\security вашей машины Windows.

  3. Отредактируйте файл krb5.conf, удалив все символы перед секцией [libdefaults] и закомментировав строку renew_lifetime = 7d.

  4. Чтобы подключиться к 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
  5. Создайте файл jaas.conf в папке DBeaver. В этом файле необходимо задать путь к основному файлу keytab, используемому для подключения к Hive. Также необходимо указать имя принципала.

    Файл jaas.conf должен иметь следующий вид:

    jaas.conf
    Client {
    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";
    };
  6. Создайте файл 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
  7. Получите аутентификационный тикет, используя файл 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
  8. Скачайте JBDC-драйвер и распакуйте его в папку DBeaver.

  9. Для запуска DBeaver перейдите в меню Database и выберите Driver Manager.

  10. Выберите 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.

  11. Перейдите в Libraries и выберите файл драйвера hive-jdbc-3.1.1-arenadata-standalone.jar, который вы распаковали ранее. Выберите FindClass → org.apache.hive.jdbc.HiveDriver. Кликните Ok.

    hive dbeaver 1
    Создание драйвера
    hive dbeaver 1 is dark
    Создание драйвера
  12. Создайте новое подключение. Для этого:

    1. Перейдите в Database → New Database Connection.

    2. Выберите Hive Kerberos.

    3. В Host укажите IP-адрес сервера Hive.

      hive dbeaver 2
      Создание нового соединения
      hive dbeaver 2 is dark
      Создание нового соединения
    4. Кликните Test Connection для проверки соединения.

      hive dbeaver 3
      Проверка соединения
      hive dbeaver 3 is dark
      Проверка соединения
  13. Кликните Finish.

    hive dbeaver 4
    Доступная база данных Hive
    hive dbeaver 4 is dark
    Доступная база данных Hive
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней