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 –