Kerberos認証を持つRiveとHiveを接続しようとしています。私がコマンドラインから呼び出されたRスクリプトで以下を実行すると、それは動作します。Kerberosを使用したRStudio(ただしRを除く)とKerberosとの接続に関する問題
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でまったく同じスクリプトを実行すると、私はエラーを取得する:私はRStudioシステム(「klistを」)を実行した場合
javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
、それは私が有効なチケットを持って示しています。 RStudioはチケットを識別することができませんが、Rはそうです。何か案は?
実行中のOSはどれですか?チケットを生成するためにどのツールを使用しましたか? env変数 'KRB5CCNAME'を試しましたか? –
OSはRed Hat 6.5です。チケットを生成するためにkinitを使用しました。変数KRB5CCNAMEは設定されていません。Sys.getenv()を実行するときに存在します。 –
'.jinit'が扱うことができない、いくつかのJavaシステムプロパティを強制的に変更しようとしました。 'export JAVA_TOOL_OPTIONS =" - Djavax.security.auth.useSubjectCredsOnly = false -Dsun.security.krb5.debug = true "' >>差をつける可能性のある小道具については、cf.私の答えはhttps://stackoverflow.com/questions/42477466/error-when-connect-to-impala-with-jdbc-under-kerberos-authrication/42506620 –