Куст RJDBC, сбой подключения
Я выполнил несколько руководств, чтобы попытаться безуспешно подключиться к Hive с помощью RJDBC.
Вот что у меня есть:
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"
Я также пробовал самые последние версии, но всегда синхронизируюсь с той же версией 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
с?
Замечание:
Я не могу установить hive-jdbc на машину, так как у меня нет root. Могу ли я обойтись без него, если у меня есть
hive-jdbc-1.1.0-cdh5.16.99.jar
в папке?
Кроме того, может ли Kerberos вызвать эту ошибку?
1 ответ
Мне нужно было загрузить автономную версию драйвера улья.
hive-jdbc-3.1.2-standalone.jar
, автономная версия не требует полной установки клиента hive.