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 <w...@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