You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Stack <st...@duboce.net> on 2012/09/14 06:30:35 UTC

Re: 0.92 client fail to log in when using JNI

CLASSPATH issue?

Says:

unable to find LoginModule class:
org/apache/hadoop/security/UserGroupInformation$HadoopLoginModule


St.Ack

On Thu, Sep 13, 2012 at 8:50 PM, Lu, Wei <wl...@microstrategy.com> wrote:
> Hi,
>
> When I use C++ to call 0.92 HBase java APIs, it failed to log in. I tried similar operation by directly using Java Api, and they succeed.
> So, is there any difference between using java api through JNI with directly calling the same java api??
>
> Can anyone help me out? Thank you very much.
>
> Here is the call stack when using jni to call java api:
>
>
> java.lang.RuntimeException: java.io.IOException: failure to login
>                 at org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:38)
>                 at org.apache.hadoop.hbase.client.HTablePool.createHTable(HTablePool.java:268)
>                 at org.apache.hadoop.hbase.client.HTablePool.findOrCreateTable(HTablePool.java:198)
>                 at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:173)
>                 at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:216)
>                 at com.microstrategy.database.hbase.HBaseWrapper.Execute(HBaseWrapper.java:151)
> Caused by: java.io.IOException: failure to login
>                 at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:452)
>                 at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:414)
>                 at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>                 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>                 at java.lang.reflect.Method.invoke(Method.java:597)
>                 at org.apache.hadoop.hbase.util.Methods.call(Methods.java:37)
>                 at org.apache.hadoop.hbase.security.User.call(User.java:586)
>                 at org.apache.hadoop.hbase.security.User.callStatic(User.java:576)
>                 at org.apache.hadoop.hbase.security.User.access$400(User.java:50)
>                 at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:393)
>                 at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:388)
>                 at org.apache.hadoop.hbase.security.User.getCurrent(User.java:139)
>                 at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:280)
>                 at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:332)
>                 at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:236)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1278)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1235)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:1222)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:918)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:814)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.relocateRegion(HConnectionManager.java:788)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:1024)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:818)
>                 at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:782)
>                 at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:249)
>                 at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:213)
>                 at org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:36)
>                 ... 5 more
> Caused by: javax.security.auth.login.LoginException: unable to find LoginModule class: org/apache/hadoop/security/UserGroupInformation$HadoopLoginModule
>                 at javax.security.auth.login.LoginContext.invoke(LoginContext.java:808)
>                 at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
>                 at javax.security.auth.login.LoginContext$5.run(LoginContext.java:706)
>                 at java.security.AccessController.doPrivileged(Native Method)
>                 at javax.security.auth.login.LoginContext.invokeCreatorPriv(LoginContext.java:703)
>                 at javax.security.auth.login.LoginContext.login(LoginContext.java:575)
>                 at org.apache.hadoop.security.UserGroupInformation.getLoginUser(UserGroupInformation.java:433)
>                 ... 31 more