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

Reply via email to