Я хочу получить большую таблицу из кластера 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