当我尝试连接到在Kerberos化Hadoop集群上运行的Impala时,我在Windows weblogic服务器上遇到问题。
我尝试在本地计算机上使用独立Java代码中的一小段代码进行连接,并成功连接。
try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
System.setProperty("java.security.auth.login.config", "D:\\hadoop\\security\\gss-jaas.conf");
System.setProperty("sun.security.jgss.debug", "true");
System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");
System.setProperty("java.security.krb5.conf", "D:\\hadoop\\security\\krb5.conf");
String connUrl = "jdbc:hive2://***.***.**.***:21050/;principal=impala/host@REALM";
connection = DriverManager.getConnection(connUrl);
} catch (Exception e) {
System.out.println("Impala Connection Error" + e.getMessage());
}
当我在startWeblogic.sh
文件中进行诸如 -Djava.security.auth.login.config = / home / appuser / security / gss-jaas的文件配置时,在Linux weblogic服务器上的连接也成功。
但是,当我在Web应用程序中尝试此代码并在Windows笔记本电脑中的weblogic上部署时,我得到
Caused by: org.apache.thrift.transport.TTransportException: GSS initiate failed
at org.apache.thrift.transport.TSaslTransport.sendAndThrowMessage(TSaslTransport.java:232)
at org.apache.thrift.transport.TSaslTransport.open(TSaslTransport.java:316)
at org.apache.thrift.transport.TSaslClientTransport.open(TSaslClientTransport.java:37)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:52)
at org.apache.hadoop.hive.thrift.client.TUGIAssumingTransport$1.run(TUGIAssumingTransport.java:49)
我还向krb5.conf
添加了gss-jaas.conf
,startWeblogic.sh
和密钥表文件的路径,但是没有任何变化。
我可以从本地计算机到hadoop服务器88、21050和22端口建立telnet连接。
Windows weblogic的区别是什么,有人可以帮助我吗?