Не удалось подключиться к Hive RJCDB с помощью Kerberos - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу получить большую таблицу из кластера Hive2 / Had oop с R.

Я не совсем уверен в значениях, которые я должен заполнить. В Cloudera WorkBench нам не нужно делать kinit, чтобы получить наш билет.

cdsw@myMachine:~$ klist
Ticket cache: FILE:/tmp/krb5cc_8536
Default principal: MYUSER@AAA.COM
Valid starting     Expires            Service principal
02/04/20 15:45:12  02/05/20 01:45:12  krbtgt/BBB.COM@AAA.COM
        renew until 02/11/20 15:45:09

Итак, у меня есть действующий билет. Теперь вот что у меня есть для моего кода.

library(DBI)
library(rJava)
library(RJDBC)

# Loading Hive2 driver from cloudera
driver <- JDBC('org.apache.hive.jdbc.HiveDriver',
            classPath = list.files("/opt/cloudera/parcels/CDH-5.13.3-1.cdh5.13.3.p0.2/jars/",pattern="jar$",full.names=T),
            identifier.quote="`")

HOSTNAME <- "my.super.host.from.aws.my-company.com"
PORT <- 10000

server <- sprintf("jdbc:hive2://%s:%s/default;principal=hive/BBB.COM@AAA.COM", HOSTNAME, PORT)

conn <- dbConnect(driver, server, "", "") # No user/password

INFO jdb c .Utils: Предоставленные полномочия: my.super.host.from. aws .my-company.com: 10000

ИНФОРМАЦИЯ jdb c .Utils: Разрешенные права доступа: my.super.host.from. aws .my-company.com: 10000

ОШИБКА transport.TSaslTransport: согласование SASL ошибка

javax.security.sasl.SaslException: сбой инициализации GSS [вызвано GSSException: допустимые учетные данные не предоставлены (уровень механизма: не удалось найти любой Kerberos tgt)]

Здесь в чем я не уверен, правильная ли переменная моего сервера? Я испортил REALM?

"jdbc:hive2:/my.super.host.from.aws.my-company.com:10000/default;principal=hive/BBB.COM@AAA.COM"

Возможно, я что-то упустил, я тоже пытался использовать AuthMech=1;KrbRealm=AAA.COM;KrbHostFQDN=BBB.COM;KrbServiceName=hive вместо principal=hive, но безуспешно.

Обновление:

Некоторая информация о Java версии: $JAVA_HOME

/ usr / java / jdk1.8.0_121-cloudera

...