0
我試圖將RStudio連接到具有Kerberos身份驗證的Hive。如果我在命令行調用的R腳本中運行以下代碼,它將起作用。使用Kerberos將RStudio(但不是R)連接到Hive的問題
library("DBI")
library("rJava")
library("RJDBC")
cp = c("/u01/cloudera/parcels/CDH/lib/hive/lib/hive-jdbc.jar"
, "/u01/cloudera/parcels/CDH/lib/hadoop/hadoop-common.jar"
, "/u01/cloudera/parcels/CDH/lib/hive/lib/libthrift-0.9.2.jar"
, "/u01/cloudera/parcels/CDH/lib/hive/lib/hive-service.jar"
, "/u01/cloudera/parcels/CDH/lib/hive/lib/httpclient-4.2.5.jar"
, "/u01/cloudera/parcels/CDH/lib/hive/lib/httpcore-4.2.5.jar"
, "/u01/cloudera/parcels/CDH/lib/hive/lib/hive-jdbc-standalone.jar")
.jinit(classpath=cp)
drv <- JDBC("org.apache.hive.jdbc.HiveDriver" , "hive-jdbc.jar")
conn <- dbConnect(drv , "jdbc:hive2://XXXX:10000/default;principal=hive/[email protected]";auth-kerberos)
如果我運行RStudio完全相同的腳本,我得到一個錯誤:
javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
如果我運行系統(「klist的」)在RStudio,就說明我有一個有效的車票。看來RStudio不能識別票,但R是。有任何想法嗎?
你正在運行哪個操作系統?你用什麼工具來生成票?你有沒有修改env變量'KRB5CCNAME'? –
操作系統是Red Hat 6.5。使用kinit生成票證。當我運行Sys.getenv() –
時,變量KRB5CCNAME未設置/存在嘗試強制某些Java系統屬性,'.jinit'無法處理,使用env變量,例如。 'export JAVA_TOOL_OPTIONS =「 - Djavax.security.auth.useSubjectCredsOnly = false -Dsun.security.krb5.debug = true」'>>對於可能有所作爲的道具,參見參考資料。我的答案https://stackoverflow.com/questions/42477466/error-when-connect-to-impala-with-jdbc-under-kerberos-authrication/42506620 –