Hi,

I checked out Hadoop (including HBase) from its Subversion repository today,
build it successfully (on Cygwin) and started HBase in "local" mode.

Then I took your little example program from the Wiki and it crashes at the
last line:
    HBaseConfiguration conf = new HBaseConfiguration();
    HTableDescriptor desc = new HTableDescriptor("test");
    desc.addFamily(new HColumnDescriptor("content:"));
    HBaseAdmin admin = new HBaseAdmin(conf);
    admin.createTable(desc);

...and I get the following stacktrace:
    java.io.IOException: java.io.IOException:
java.util.NoSuchElementException
        at java.util.TreeMap.key(TreeMap.java:1206)
        at java.util.TreeMap$NavigableSubMap.lastKey(TreeMap.java:1435)
        at
java.util.Collections$SynchronizedSortedMap.lastKey(Collections.java:2125)
        at org.apache.hadoop.hbase.HMaster.createTable(HMaster.java:2460)
        at org.apache.hadoop.hbase.HMaster.createTable(HMaster.java:2424)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:379)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:596)

        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
        at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at
org.apache.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException(RemoteExceptionHandler.java:82)
        at
org.apache.hadoop.hbase.HBaseAdmin.createTableAsync(HBaseAdmin.java:150)
        at
org.apache.hadoop.hbase.HBaseAdmin.createTable(HBaseAdmin.java:119)
        at Test.main(Test.java:19)
  
After doing a little debugging I found the culprit line in
org.apache.hadoop.hbase.HMaster:
    MetaRegion m = (onlineMetaRegions.containsKey(newRegion.getRegionName())
?
        onlineMetaRegions.get(newRegion.getRegionName()) :
            onlineMetaRegions.get(onlineMetaRegions.headMap(
                newRegion.getTableDesc().getName()).lastKey()));

Looking at that line and its Taking out the single statement
    onlineMetaRegions.containsKey(newRegion.getRegionName()) --> false
    onlineMetaRegions.get(newRegion.getRegionName()) --> null
    newRegion.getTableDesc().getName() --> test
    onlineMetaRegions.headMap(newRegion.getTableDesc().getName()) --> {}
    onlineMetaRegions.headMap(newRegion.getTableDesc().getName()).lastKey()
--> *CRASH*

Does anybody else experience that? ...or is there even a solution for that?

BTW: The same happens when I use the HBase shell... When I type "create
table test (test);" I get the message "java.util.NoSuchElementException"
also.

Cheers,
Holger
-- 
View this message in context: 
http://www.nabble.com/NoSuchElementException-when-creating-a-table-tf4734280.html#a13538133
Sent from the Hadoop Users mailing list archive at Nabble.com.

Reply via email to