[英]What is the Kerberos method?
I'm trying to connect to hive with jdbc. 我正在尝试使用jdbc连接到hive。 I keep getting this error. 我一直收到这个错误。 I tried looking it up but could not hind anything useful . 我尝试查找它但不能隐藏任何有用的东西。
This is my connection string: jdbc:hive2://hostname.xxx.com:10000/default;principal=hive/hostname.xxx.com@HADOOP_ENV.COM
这是我的连接字符串: jdbc:hive2://hostname.xxx.com:10000/default;principal=hive/hostname.xxx.com@HADOOP_ENV.COM
What is this error: java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosTicket(Ljavax/security/auth/Subject;)Z
这是什么错误: java.lang.NoSuchMethodError: org.apache.hadoop.security.authentication.util.KerberosUtil.hasKerberosTicket(Ljavax/security/auth/Subject;)Z
That method exists in Hadoop 2.8 but not in Hadoop 2.7 -- so my guess is that your project dependencies are not aligned with whatever version of Hadoop you have in Production . 该方法存在于Hadoop 2.8中,但不存在于Hadoop 2.7中 - 因此我的猜测是您的项目依赖项与生产中的任何Hadoop版本都不一致 。
Code in trunk
代码在trunk
https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil.java https://github.com/apache/hadoop/blob/trunk/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil.java
code in branch-2.8.0
branch-2.8.0
代码
https://github.com/apache/hadoop/blob/branch-2.8.0/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil.java https://github.com/apache/hadoop/blob/branch-2.8.0/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil。 java的
code in branch-2.7.4
branch-2.7.4
代码
https://github.com/apache/hadoop/blob/branch-2.7.4/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil.java https://github.com/apache/hadoop/blob/branch-2.7.4/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/util/KerberosUtil。 java的
Kerberos is an authentication protocol that is used by Hive server ( https://en.wikipedia.org/wiki/Kerberos_(protocol) ) Kerberos是Hive服务器使用的身份验证协议( https://en.wikipedia.org/wiki/Kerberos_(protocol) )
The problem you are setting is more about a missing library in our pom.xml. 您正在设置的问题更多是关于我们的pom.xml中缺少的库。 Have you include <artifactId>hive-jdbc</artifactId>
? 你有<artifactId>hive-jdbc</artifactId>
吗?
I think your keberos ticket is not generated properly 我认为您的keberos票证生成不正确
Can you try running these two commands in order from the user you are trying to connect: 您可以尝试从您尝试连接的用户按顺序运行这两个命令:
Then try to connect again. 然后尝试再次连接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.