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