You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Yu...@DELL.com on 2015/04/09 03:59:24 UTC

NoSuchElementException thrown when getting connection to htable

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:image001.png@01D0722E.20FDCB30]
[cid:image002.png@01D0722E.20FDCB30]

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