我试图通过jdbc连接hive,使用r中的rjdbc包。配置单元配置了kerberos身份验证。我正在使用cdh 5.6.0。配置单元版本为1.1.0。我在用下面的jar
hive-jdbc-1.1.0-cdh5.6.0-standalone
hadoop-common-2.6.0-cdh5.6.0
我的密码是
library(RJDBC) drv <- JDBC("com.cloudera.hive.jdbc4.HS2Driver",list.files("Jars/",pattern="jar$",full.names=T)) url.dbc = paste0("jdbc:hive2://xx.xx.xx.xx:10000/default;principal=hive/xx.xx.xx.xx@XXX.COM"); conn=dbConnect(drv,url.dbc,"username","password")
在执行这段代码时,我遇到了以下错误, Error in .jcall(drv@jdrv, "Ljava/sql/Connection;", "connect", as.character(url)[1], : java.sql.SQLException: [Cloudera][HiveJDBCDriver](500164) Error initialized or created transport for authentication: Peer indicated failure: Unsupported mechanism type PLAIN.
我在这里呆了很久,请帮我纠正这个错误
1条答案
按热度按时间4zcjmb1e1#
我可以访问工作区中启用了kerberos的集群。我可以使用以下代码连接。。
步骤1:从cloudera下载最新的jdbc驱动程序。我在redhat 6(x64)中使用了2.5.18
步骤2:解压并仅使用JDBC4连接器api。
第三步:发出命令
klist
在terminal[我希望您使用的是linux,如果不是的话,您可能需要设置active directory]并查看是否有活动票据。如果票证不存在,则生成它[可能需要管理员的帮助]第4步:一旦你有了有效的票证[见第3步所述]把第2步中解压的所有jar放在一个文件夹中[我的情况是这样的
Drivers/Cloudera-Simba/JDBC4/
在我的r项目目录中]第5步:一件重要的事情是,如果您有sentry管理cloudera集群,请确保从具有所需访问级别的用户处登录并运行以下r代码。
第6步:用jdbcurl中配置的适当主机名etc运行以下r代码。
希望这有帮助。
您可以在这里找到有关kerberos配置的更多信息。