我在RStudio中通过JDBC进行了hive连接而没有任何问题,我在'Tools<中创建了Kerberos票证。 Shell:kinit'并且一切正常,我可以使用Kerberos TGT。
但是如果我通过shell / ssh制作相同的方法并在终端(非RStudio)中加载R,则R无法使用Kerberos TGT文件并失败
我如何使用Kerberos票证?
[user @ server~] $:kinit
user @ domain的密码: - i输入密码 -
[user @ server~] $:R
- R load -
>源( 'samecode.r')
错误引起:java.sql.SQLException:无法创建与jdbc的安全连接:hive2:.... etc
有什么想法吗?如果我们不创建票证,则会在RStudio中发生此错误,但是当它在工具> shell中创建时,一切正常,在控制台中它是不可能的。 我尝试用
创建它system('kinit');
创建罚单,但不能在其余代码中使用它
答案 0 :(得分:6)
您好,您可以使用keytab
文件和此命令在R中创建一个kerberos票证:
system("kinit username@ADS.IU.EDU -k -t username.keytab")
要创建keytab
,您必须通过shell执行此操作:
ktutil
ktutil: addent -password -p username@ADS.IU.EDU -k 1 -e rc4-hmac
Password for username@ADS.IU.EDU: [enter your password]
ktutil: addent -password -p username@ADS.IU.EDU -k 1 -e aes256-cts
Password for username@ADS.IU.EDU: [enter your password]
ktutil: wkt username.keytab
ktutil: quit
解释了创建keytab
的所有步骤here
keytab
文件必须在您的工作目录中。