gpt4 book ai didi

r - 如何使用 Kerberos keytab 通过 R 连接 HIVE?

转载 作者:可可西里 更新时间:2023-11-01 16:35:37 24 4
gpt4 key购买 nike

我正在尝试通过 R 远程连接到 Hive 服务器,并使用 Kerberos key 表文件执行身份验证。

Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, : java.io.IOException: Login failure for antonio.silva@HADOOPREALM.LOCAL from keytab C:/Users/antonio.silva/Desktop/jars/antonio.silva.keytab: javax.security.auth.login.LoginException: null (68)

但是当我尝试通过 key 表登录用户时,出现错误。

#loading libraries

library("RJDBC")

hadoop.class.path <- list.files(path = c("C:/Users/antonio.silva/Desktop/jars/hadoop/"), pattern = "jar", full.names = T)
hive.class.path <- list.files(path = c("C:/Users/antonio.silva/Desktop/jars/hive/"), pattern = "jar", full.names = T)
class.path = c(hadoop.class.path,hive.class.path)
.jinit(classpath=class.path)
conf = .jnew("org.apache.hadoop.conf.Configuration")
conf$set("hadoop.security.authentication", "kerberos")
ugi = J("org.apache.hadoop.security.UserGroupInformation")
ugi$setConfiguration(conf)
path = "C:/Users/antonio.silva/Desktop/jars/antonio.silva.keytab"
ugi$loginUserFromKeytab('antonio.silva@HADOOPREALM.LOCAL', path)

我做错了什么?

最佳答案

我找到了解决方案,事实证明,我需要将 MIT Kerberos conf 文件 (krb5.conf) 放在 java 目录“~\Java\jre1.8.0_192\lib\security”中。

将文件粘贴到目录后,除了前面发布的代码外,还使用了以下代码,我能够成功执行连接并连接到Hive服务器:

drv <- JDBC("org.apache.hive.jdbc.HiveDriver")
conn <- dbConnect(drv, "jdbc:hive2://hivename:10000/default;principal=hive/_HOST@HADOOPREALM.LOCAL")

当需要通过 R 执行连接到 HDFS 时,此凭据验证有效,我在其中回答了有关连接和需要执行的配置的问题,以便使用 R 读取和写入 HDFS 服务器中的文件.

HDFS 配置:How to acess to HDFS via R?

关于r - 如何使用 Kerberos keytab 通过 R 连接 HIVE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53618077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com