这是我的设想:
-我的本地pc正在开发本地java webapp。
-我可以用ssh访问一个名为a的服务器。
-我对一个名为b的服务器有ssh访问权限,只能从a访问。
-hbase在b上。
现在,我尝试使用以下conf变量访问hbase:
Configuration myConf = HBaseConfiguration.create();
myConf.addResource("/home/simon/workspace/myProject/src/hbase-site.xml");
myConf.set("hbase.zookeeper.quorum", ZookeeperAddressVariable);
myConf.set("hadoop.security.authentication", "Kerberos");
myConf.set("hbase.rpc.protection", "privacy");
UserGroupInformation.setConfiguration(myConf);
UserGroupInformation.loginUserFromKeytab("scardena@MYREALM.CH","/etc/scardena.keytab");
HTable testTable = new HTable(myConf,"myTable");
但我得到了一个错误:
exception
java.io.IOException: Login failure for scardena@MYREALM.CH from keytab /etc/scardena.keytab
org.apache.hadoop.security.UserGroupInformation.loginUserFromKeytab(UserGroupInformation.java:841)
..
javax.security.auth.login.LoginException: Pre-authentication information was invalid (24)
com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Krb5LoginModule.ja
..
KrbException: Pre-authentication information was invalid (24)
sun.security.krb5.KrbAsRep.<init>(KrbAsRep.java:76)
sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBui..
.
我也做了kinit在做连接之前,我也尝试过多次重做键。
编辑:我忘了提一下,我试图从外部b网络做这个,但即使我在b网络内部,它也不工作。
暂无答案!
目前还没有任何答案,快来回答吧!