Как установить параметры класса Hadoop в Hive, как показано здесь Pig?

Я хочу, чтобы Hive автоматически получал билет kerberos всякий раз, когда выполняется куст (точнее, оболочка улья, а не сервер улья), а также автоматически обновлял его между ними, если задание выполнялось дольше, чем тайм-аут билета.

Я нашел аналогичную функциональность в Pig. См. это . Я проверил, и он работает, он автоматически получает билет из keytab. Мне не нужно приобретать его вручную с помощью kinit, а затем запускать задание. Он также продлевает билеты, когда это необходимо, как указано в документе.

В некоторых исследованиях я наткнулся на обработку имен пользователей в hadoop . Я обнаружил аналогичную запись в журнале о сбросе параметров конфигурации класса UserGroupInformation при запуске улья. Поскольку я хотел этого каждый раз, когда выполняется куст, я пробовал вставлять HADOOP_OPTS, который выглядит так:

       export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.krb5.conf=/etc/krb5.conf -Dhadoop.security.krb5.principal=root@MSI.COM -Dhadoop.security.krb5.keytab=/etc/security/keytab/user.service.keytab"

но всякий раз, когда я его выполняю. Он выводит следующие параметры, что означает, что он не учитывает принцип, и keytab может быть именем свойства, которое может быть неправильным, поскольку я использовал имена, которые я нашел в Pig. Замечено, что свойство krb5.conf принимается во внимание, так как изменение имени файла conf показывает, что область по умолчанию не может быть найдена, поскольку она не может прочитать правильный файл conf.

      23/01/23 23:33:28 DEBUG security.UserGroupInformation: hadoop login commit
23/01/23 23:33:28 DEBUG security.UserGroupInformation: using kerberos user:null
23/01/23 23:33:28 DEBUG security.UserGroupInformation: using local user:UnixPrincipal: root
23/01/23 23:33:28 DEBUG security.UserGroupInformation: Using user: "UnixPrincipal: root" with name root
23/01/23 23:33:28 DEBUG security.UserGroupInformation: User entry: "root"
23/01/23 23:33:28 DEBUG security.UserGroupInformation: Assuming keytab is managed externally since logged in from subject.
23/01/23 23:33:28 DEBUG security.UserGroupInformation: UGI loginUser:root (auth:KERBEROS)

За любое руководство заранее спасибо

В конечном итоге я хочу, чтобы всякий раз, когда вызывается hive-shell или hive-cli, он автоматически запрашивал билет Kerberos и при необходимости обновлял его.

0 ответов

Другие вопросы по тегам