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

Reply via email to