Hi all,
I got this problem of tables that are present in the hbase but hbase "is not fully aware" of their presence
Here is what I do in jrib shell:


-----> checking if table allusers_counters exists

irb(main):208:0> tablename = "allusers_counters"
=> "allusers_counters"
irb(main):209:0> tablename_text = Text.new(tablename)
=> #<Java::OrgApacheHadoopIo::Text:0x397577f9 @java_object=allusers_counters>
irb(main):210:0> admin.tableExists(tablename_text)
2008-06-19 12:05:57,117 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName .META.: location server 192.168.1.203:60020, location region name .META.,,1 2008-06-19 12:05:57,139 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_counters: location server 192.168.1.201:60020, location region name allusers_counters,,1213865977997 2008-06-19 12:05:57,143 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_index: location server 192.168.1.201:60020, location region name allusers_index,,1213866000317 2008-06-19 12:05:57,144 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_indexlist: location server 192.168.1.201:60020, location region name allusers_indexlist,,1213865967175 2008-06-19 12:05:57,146 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_pages: location server 192.168.1.201:60020, location region name allusers_pages,,1213865989247 2008-06-19 12:05:57,147 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName users: location server 192.168.1.201:60020, location region name users,,1213865912445 2008-06-19 12:05:57,148 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_counters: location server 192.168.1.202:60020, location region name userssearch_counters,,1213865934224 2008-06-19 12:05:57,151 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_index: location server 192.168.1.202:60020, location region name userssearch_index,,1213865956115 2008-06-19 12:05:57,152 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_indexlist: location server 192.168.1.201:60020, location region name userssearch_indexlist,,1213865923078 2008-06-19 12:05:57,153 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_pages: location server 192.168.1.201:60020, location region name userssearch_pages,,1213865945020
=> false

-----> tableExists(tablename_text) says FALSE ???
-----> trying to create this table


irb(main):212:0> tablename_text = Text.new(tablename)
=> #<Java::OrgApacheHadoopIo::Text:0x5d91dd1d @java_object=allusers_counters>
irb(main):213:0> desc = HTableDescriptor.new(tablename)
=> #<Java::OrgApacheHadoopHbase::HTableDescriptor:0x3f6a5bcb @java_object=NAME => 'allusers_counters', FAMILIES => []>
irb(main):214:0> desc.addFamily(HColumnDescriptor.new("pageSize:"))
=> nil
irb(main):215:0> desc.addFamily(HColumnDescriptor.new("firstPageId:"))
=> nil
irb(main):216:0> desc.addFamily(HColumnDescriptor.new("lastPageId:"))
=> nil
irb(main):217:0> desc.addFamily(HColumnDescriptor.new("childrenCount:"))
=> nil
irb(main):218:0> desc.addFamily(HColumnDescriptor.new("stickyChildrenCount:"))
=> nil
irb(main):219:0> if admin.tableExists(tablename_text)
irb(main):220:1>   admin.disableTable(tablename_text)
irb(main):221:1>   admin.deleteTable(tablename_text)
irb(main):222:1> end
2008-06-19 12:08:06,999 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName .META.: location server 192.168.1.203:60020, location region name .META.,,1 2008-06-19 12:08:07,023 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_counters: location server 192.168.1.201:60020, location region name allusers_counters,,1213865977997 2008-06-19 12:08:07,027 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_index: location server 192.168.1.201:60020, location region name allusers_index,,1213866000317 2008-06-19 12:08:07,028 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_indexlist: location server 192.168.1.201:60020, location region name allusers_indexlist,,1213865967175 2008-06-19 12:08:07,029 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName allusers_pages: location server 192.168.1.201:60020, location region name allusers_pages,,1213865989247 2008-06-19 12:08:07,031 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName users: location server 192.168.1.201:60020, location region name users,,1213865912445 2008-06-19 12:08:07,032 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_counters: location server 192.168.1.202:60020, location region name userssearch_counters,,1213865934224 2008-06-19 12:08:07,034 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_index: location server 192.168.1.202:60020, location region name userssearch_index,,1213865956115 2008-06-19 12:08:07,035 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_indexlist: location server 192.168.1.201:60020, location region name userssearch_indexlist,,1213865923078 2008-06-19 12:08:07,037 DEBUG [main] client.HConnectionManager$TableServers(516): Cache hit in table locations for row <> and tableName userssearch_pages: location server 192.168.1.201:60020, location region name userssearch_pages,,1213865945020
=> nil
irb(main):223:0> admin.createTable(desc)
NativeException: org.apache.hadoop.hbase.TableExistsException: org.apache.hadoop.hbase.TableExistsException: allusers_counters at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:627) at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:590)
       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.hbase.ipc.HbaseRPC$Server.call(HbaseRPC.java:424)
       at org.apache.hadoop.ipc.Server$Handler.run(Server.java:896)

from sun/reflect/NativeConstructorAccessorImpl.java:-2:in `newInstance0' from sun/reflect/NativeConstructorAccessorImpl.java:39:in `newInstance' from sun/reflect/DelegatingConstructorAccessorImpl.java:27:in `newInstance'
       from java/lang/reflect/Constructor.java:513:in `newInstance'
from org/apache/hadoop/hbase/RemoteExceptionHandler.java:82:in `decodeRemoteException' from org/apache/hadoop/hbase/client/HBaseAdmin.java:187:in `createTableAsync' from org/apache/hadoop/hbase/client/HBaseAdmin.java:145:in `createTable'
       from sun/reflect/NativeMethodAccessorImpl.java:-2:in `invoke0'
       from sun/reflect/NativeMethodAccessorImpl.java:39:in `invoke'
       from sun/reflect/DelegatingMethodAccessorImpl.java:25:in `invoke'
       from java/lang/reflect/Method.java:597:in `invoke'
from org/jruby/javasupport/JavaMethod.java:250:in `invokeWithExceptionHandling'
       from org/jruby/javasupport/JavaMethod.java:219:in `invoke'
       from org/jruby/javasupport/JavaClass.java:417:in `execute'
from org/jruby/internal/runtime/methods/SimpleCallbackMethod.java:67:in `call' from org/jruby/internal/runtime/methods/DynamicMethod.java:78:in `call'
... 102 levels...
       from org/jruby/evaluator/ASTInterpreter.java:632:in `blockNode'
       from org/jruby/evaluator/ASTInterpreter.java:303:in `evalInternal'
       from org/jruby/evaluator/ASTInterpreter.java:169:in `eval'
from org/jruby/internal/runtime/methods/DefaultMethod.java:172:in `interpretedCall' from org/jruby/internal/runtime/methods/DefaultMethod.java:148:in `call' from org/jruby/internal/runtime/methods/DefaultMethod.java:223:in `call'
       from org/jruby/runtime/CallSite.java:116:in `cacheAndCall'
       from org/jruby/runtime/CallSite.java:270:in `call'
       from ruby/bin//bin/jirb:1:in `__file__'
       from ruby/bin//bin/jirb:-1:in `load'
       from org/jruby/Ruby.java:511:in `runScript'
       from org/jruby/Ruby.java:431:in `runNormally'
       from org/jruby/Ruby.java:311:in `runFromMain'
       from org/jruby/Main.java:144:in `run'
       from org/jruby/Main.java:89:in `run'
       from org/jruby/Main.java:80:in `main'irb(main):224:0>

so if I check if the table exists by admin.tableExists the hbase says false but when i try to create it throws the above exception
is this a known issue or my mistake?

greetz
krzysiek

Reply via email to