2017-02-08 3 views
2

В настоящее время я вошел в систему с пользователем testuser1.Как получить улей текущее имя пользователя

Мне нужно получить текущего пользователя в моем запросе на улей (улей Apache). Но функция current_user по умолчанию для hive возвращает пользователя в качестве пользователя «HIVE».

выберите current_user() - улей

Как я могу получить CURRENT_USER как - testuser1.

ответ

6

Вы можете использовать logged_in_user(), который возвращает текущее имя пользователя из состояния сеанса. Это имя пользователя, которое предоставляется при подключении к Hive. Эта функция была добавлена ​​в Hive 2.2.0.

current_user() возвращает текущее имя пользователя из сконфигурированного администратора аутентификатора (начиная с Hive 1.2.0).

Источник: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

На Cloudera CDH 5.8 я получаю "Coudera", когда я бегу выберите CURRENT_USER().

+0

Спасибо ravi ... Мы используем версию улья как Hive 1.1.0-cdh5.5.2. У этого нет этой функции. Есть ли другой способ получить зарегистрированного пользователя? – Vicky

+0

Не уверен, что он решает вашу проблему, но whoami можно добавить к вызову sql, например. : hive -e "выбрать col, 'whoami'' из таблицы1; – ravi