RJDB C куст, соединение не удалось - PullRequest
0 голосов
/ 03 февраля 2020

Я следовал нескольким учебникам, чтобы попытаться подключиться к Hive с помощью RJDB C, без успеха.

Вот что у меня есть:

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


driver <- JDBC('org.apache.hive.jdbc.HiveDriver',
            classPath = list.files("/home/cdsw/R",pattern="jar$",full.names=T),
            identifier.quote="`")

USERNAME <- "MyUser"
PASSWORD <- "MySecretPassWord"
HOSTNAME <- "my.host.net"
PORT <- 10000

server <- sprintf('jdbc:hive2://%s:%s', HOSTNAME, PORT)

conn <- dbConnect(driver, server,
                  USERNAME, PASSWORD)

Я скачал и разместил на "/home/cdsw/R/" jar файлов.

list.files("/home/cdsw/R",pattern="jar$",full.names=T)

[1] "/home/cdsw/R/hadoop-common-2.6.0-cdh5.16.99.jar"
[2] "/home/cdsw/R/hive-jdbc-1.1.0-cdh5.16.99.jar"

Я также пробовал самые последние версии, но всегда синхронизировал c с той же версией Cloudera. Даже если моя версия 5.XX.

Я вполне уверен, что HOSTNAME правильный, так как я заставил его работать с impyla в Python с тем же именем хоста / портом.

Ошибка:

Ошибка в .jcall (drv@jdrv, "Ljava / sql / Connection;", "connect", as.character (url) [1],: java .lang.NoClassDefFoundError: org / apache / thrift / TException

Насколько я понимаю, у меня нет правильных .jar s?

Замечание:

Я не могу установить hive-jdb c на машину, поскольку я не root. Могу ли я обойтись без него, поскольку я поместил hive-jdbc-1.1.0-cdh5.16.99.jar в папку?

Также Может ли Kerberos вызвать эту ошибку?

1 Ответ

0 голосов
/ 03 февраля 2020

Мне нужно было загрузить автономную версию драйвера куста.

hive-jdbc-3.1.2-standalone.jar, автономная версия не требует полной установки клиента куста.

...