Dell Customer Communication Hi All, I'm using HBase 0.94.15 with Hadoop core 1.0.4. I have an hbase client deployed in Karaf console. When trying to get connection to hbase, I got NoSuchElementException.
When debugging the issue, I understood that the AccessControlContext passed from Karaf is not empty. It contains a list of Principles, but not extending Hadoop User class. That's why the UserGroupInformation() constructor throws NoSuchElementException. A few questions: 1. Is this a bug in Hadoop core 1.0.4? 2. Is there any way to get it work when trying to get connection to hbase and Hadoop while the AccessControlContext is not null? 3. Is it possible to turn off security in Hadoop core 1.0.4? Here are a few screenshots and the full stack trace. [cid:[email protected]] [cid:[email protected]] Stack trace: 2015-04-08 11:21:52,560 | ERROR | Local user karaf | HBaseDataStore | 284 - org.opendaylight.tsdr.persistence-hbase - 1.0.0.SNAPSHOT | Error getting connection to the htable java.util.NoSuchElementException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:925)[:1.7.0_71] at java.util.HashMap$KeyIterator.next(HashMap.java:956)[:1.7.0_71] at org.apache.hadoop.security.UserGroupInformation.<init>(UserGroupInformation.java:430)[282:wrap_mvn_org.apache.hadoop_hadoop-core_1.0.4:0] at org.apache.hadoop.security.UserGroupInformation.getCurrentUser(UserGroupInformation.java:452)[282:wrap_mvn_org.apache.hadoop_hadoop-core_1.0.4:0] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71] at org.apache.hadoop.hbase.util.Methods.call(Methods.java:37)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User.call(User.java:624)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User.callStatic(User.java:614)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User.access$300(User.java:52)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:431)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User$SecureHadoopUser.<init>(User.java:426)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.security.User.getCurrent(User.java:177)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.UserProvider.getCurrent(UserProvider.java:78)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.UserProvider.getCurrentUserName(UserProvider.java:62)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionKey.<init>(HConnectionManager.java:473)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:198)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:151)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory.java:36)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HTablePool.createHTable(HTablePool.java:266)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HTablePool.findOrCreateTable(HTablePool.java:196)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:175)[283:wrap_mvn_org.apache.hbase_hbase_0.94.15:0] at org.opendaylight.tsdr.persistence.hbase.HBaseDataStore.getConnection(HBaseDataStore.java:112) at org.opendaylight.tsdr.persistence.hbase.HBaseDataStore.create(HBaseDataStore.java:168) at org.opendaylight.tsdr.persistence.hbase.TSDRHBasePersistenceServiceImpl.getMetrics(TSDRHBasePersistenceServiceImpl.java:100) at org.opendaylight.tsdr.persistence.hbase.command.ListMetricsCommand.doExecute(ListMetricsCommand.java:45) at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33) at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39) at org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71] at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54) at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119) at org.apache.karaf.shell.console.commands.$BlueprintCommand1938709604.execute(Unknown Source)[37:org.apache.karaf.shell.console:3.0.1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[:1.7.0_71] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)[:1.7.0_71] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[:1.7.0_71] at java.lang.reflect.Method.invoke(Method.java:606)[:1.7.0_71] at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54) at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119) at org.apache.karaf.shell.console.commands.$BlueprintCommand1938709604.execute(Unknown Source)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89) at org.apache.karaf.shell.console.impl.jline.ConsoleImpl$DelegateSession.execute(ConsoleImpl.java:521) at org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:212) at java.lang.Thread.run(Thread.java:745)[:1.7.0_71] at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3.doRun(ConsoleFactoryService.java:126)[37:org.apache.karaf.shell.console:3.0.1] at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3$1.run(ConsoleFactoryService.java:117) at java.security.AccessController.doPrivileged(Native Method)[:1.7.0_71] at org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:47)[38:org.apache.karaf.jaas.modules:3.0.1] at org.apache.karaf.shell.console.impl.jline.ConsoleFactoryService$3.run(ConsoleFactoryService.java:115)[37:org.apache.karaf.shell.console:3.0.1] Thanks, YuLing
