Ошибка получения соединения JDBC с Hive через Knox
У меня есть кластер Hadoop с платформой Hortonworks Data Platform 2.4.2, которая работает уже более года. Кластер Kerberised и внешние приложения подключаются через Knox. Ранее сегодня кластер прекратил принимать соединения JDBC через Knox к Hive.
Журналы Knox не показывают ошибок, но журнал Hive Server2 показывает следующую ошибку:
"Вызвано: org.apache.hadoop.security.authorize.AuthorizationException: пользователю: knox не разрешено выдавать себя за org.apache.hive.service.cli.HiveSQLException: не удалось проверить привилегию прокси для knox for "
Посмотрев на других пользователей, предложения, как правило, касаются правильной настройки параметров конфигурации для hadoop.proxyusers.users и hadoop.proxyusers.groups.
Тем не менее, в моем случае я не вижу, как эти настройки могут быть проблемой. Кластер работает уже более года, и у нас есть несколько приложений, ежедневно подключающихся к Hive через JDBC. Конфигурация сервера не была изменена, и соединения ранее были успешны в текущей конфигурации. В платформу или среду не было внесено никаких изменений, и кластер не был перезапущен или отключен для обслуживания между последним успешным соединением JDBC и отклонением соединений JDBC.
Теперь я остановил и запустил кластер, но после перезапуска кластер все еще не принимает соединения JDBC.
У кого-нибудь есть предложения по поводу того, как мне поступить?
2 ответа
Известный обходной путь, кажется, установить:
hadoop.proxyuser.knox.groups = *
hadoop.proxyuser.knox.hosts = *
Мне еще предстоит найти реальное исправление, которое позволит вам сохранить этот уровень дополнительной безопасности.
Включено ли у вас олицетворение улья?
hive.server2.enable.doAs=true
Это может быть проблемой, если предположить, что hadoop.proxyusers.users и hadoop.proxyusers.groups установлены правильно.
Также проверьте, существует ли пользовательский knox на узле Hive Server2 (и других, используемых для олицетворения).