【问题标题】:Hive JDBC connection issues with Kerberos authentication - RKerberos 身份验证的 Hive JDBC 连接问题 - R
【发布时间】:2016-10-09 23:55:28
【问题描述】:

我正在尝试使用 R 中的 RJDBC 包通过 JDBC 连接 Hive。Hive 配置了 Kerberos 身份验证。我正在使用 CDH 5.6.0。 Hive 版本是 1.1.0。我正在使用以下 JARS

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.

我在这里被打了很久,请帮我解决这个错误

【问题讨论】:

  • 我可以知道您使用的是哪个版本的 JDBC 驱动程序。我有一个启用了 Kerberos 的集群,我可以在其中创建连接。但有趣的事实是,我在 Impala 中遇到了同样的错误。
  • 使用更新的驱动程序 Impala 也可以工作。

标签: r jdbc hive kerberos rjdbc


【解决方案1】:

我可以在我的工作场所访问启用 Kerberos 的集群。我可以使用以下代码进行连接..

第一步:从Cloudera下载最新的JDBC驱动。我在 Redhat 6 (x64) 中使用了 2.5.18

第 2 步:解压缩并仅使用 JDBC 4 连接器 API。

第 3 步:在终端中发出命令klist [我希望您使用的是 linux,如果不是,您可能需要设置活动目录] 并看到有一张票处于活动状态。如果票证不存在,则生成它[可能在管理员的帮助下]

第 4 步:一旦您拥有有效票证 [参见第 3 步中所述],请将第 2 步中解压缩的所有 jar 放入一个文件夹中。 [在我的例子中,它位于我的 R-project 目录中的Drivers/Cloudera-Simba/JDBC4/]

第 5 步:一件重要的事情是,如果您有 Sentry 管理 Cloudera 集群,请确保从具有所需访问级别的用户登录并运行以下 R 代码.

第 6 步:使用 JDBC Url 中配置的适当主机名等运行以下 R 代码。

drvH <- JDBC(driverClass = "com.cloudera.hive.jdbc4.HS2Driver", 
             classPath = normalizePath(list.files("Drivers/Cloudera-Simba/JDBC4/", pattern = ".jar$", full.names = T, recursive = T)), 
             identifier.quote="`")

connH <- dbConnect(drvH, "jdbc:hive2://master.rbi.org.in:10000;AuthMech=1;KrbRealm=YOUR_REALM.COM;KrbHostFQDN=master.rbi.org.in;KrbServiceName=hive")

# test it
dbGetQuery(connH, "show databases")

希望这会有所帮助。

您可以找到有关 Kerberos 配置的更多信息here

【讨论】:

  • 我主要从步骤1中提到的可下载内容中的文档收集信息。其余的都是我的经验。我几乎总是使用这种技术通过 R 进行连接。如果我能在更多细节方面为您提供帮助,请告诉我。
猜你喜欢
  • 1970-01-01
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2017-07-13
  • 2018-03-21
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多