Hi,

I don't really know about the REST client but here at Companybook we are
using MassiveRecord, which provides a basic thrift wrapper and an ORM if you
want to go further.
It's really advanced and work with the latest HBase (I see that HBase client
hasn't been updated since 2 years now... HBase got massive updates since
that time).

Hope that help!


On Thu, Aug 25, 2011 at 11:59 AM, stuti <[email protected]> wrote:

>
> Hi friends,
>
> I am stuck with my development as I want my ruby client should interact
> with
> REST interface to connect to Hbase. To attain this I installed
> sishen-hbase-ruby
> gem and hbase-ruby gem on my Ubuntu box.
> I tried to query a  table present in Hbase using the following code but it
> is
> giving error.
>
> Code snippet :
>
> require 'rubygems'
> require 'hbase'
>
> client = HBase::Client.new("http://localhost:8080/";)            # this url
> is
> the default.
> table = client.show_table('userstable')                       # show the
> meta
> info of table users
>
> Error on Console :
>
> /usr/local/lib/ruby/gems/1.9.1/gems/sishen-hbase-ruby-
> 1.0/lib/hbase/operation/table_operation.rb:9:in `rescue in show_table':
> Table
> 'userstable' Not found (HBase::TableNotFoundError)
>        from /usr/local/lib/ruby/gems/1.9.1/gems/sishen-hbase-ruby-
> 1.0/lib/hbase/operation/table_operation.rb:5:in `show_table'
>        from /home/hadoop/Hbase_Script/Test.rb:10:in `<main>'
>
> Error in Hbase Rest server logs :
>
> 2011-08-25 15:10:56,701 DEBUG
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
> Cached location for .META.,,1.1028785192 is localhost:36169
> 2011-08-25 15:10:56,728 DEBUG org.apache.hadoop.hbase.rest.RowResource: GET
> http://localhost:8080/api/userstable
> 2011-08-25 15:10:56,762 INFO org.apache.zookeeper.ZooKeeper: Initiating
> client
> connection, connectString=localhost:2181 sessionTimeout=180000
> watcher=hconnection
> 2011-08-25 15:10:56,765 INFO org.apache.zookeeper.ClientCnxn: Opening
> socket
> connection to server localhost/10.33.100.107:2181
> 2011-08-25 15:10:56,765 INFO org.apache.zookeeper.ClientCnxn: Socket
> connection
> established to localhost/10.33.100.107:2181, initiating session
> 2011-08-25 15:10:56,778 INFO org.apache.zookeeper.ClientCnxn: Session
> establishment complete on server localhost/10.33.100.107:2181, sessionid =
> 0x131fc710262001f, negotiated timeout = 40000
> 2011-08-25 15:10:56,790 DEBUG
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
> Lookedup root region location,
>
> connection=org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplemen
> tation@1acee78; hsa=localhost:36169
> 2011-08-25 15:10:56,791 DEBUG
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
> Cached location for .META.,,1.1028785192 is localhost:36169
> 2011-08-25 15:10:56,803 WARN
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation:
> Encountered problems when prefetch META table:
> org.apache.hadoop.hbase.TableNotFoundException: Cannot find row in .META.
> for
> table: api, row=api,,99999999999999
>            at
> org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:136)
>            at
> org.apache.hadoop.hbase.client.MetaScanner.metaScan(MetaScanner.java:95)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.pref
> etchRegionCache(HConnectionManager.java:648)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegionInMeta(HConnectionManager.java:702)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegion(HConnectionManager.java:593)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegion(HConnectionManager.java:558)
>            at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:172)
> ……………………
> 2011-08-25 15:10:56,807 ERROR org.mortbay.log: /api/userstable
> java.lang.RuntimeException: org.apache.hadoop.hbase.TableNotFoundException:
> api
>            at
>
> org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory
> .java:38)
>            at
> org.apache.hadoop.hbase.client.HTablePool.createHTable(HTablePool.java:133)
>            at
> org.apache.hadoop.hbase.client.HTablePool.getTable(HTablePool.java:89)
>            at org.apache.hadoop.hbase.rest.RowResultGenerator.<init>
> (RowResultGenerator.java:49)
>            at
>
> org.apache.hadoop.hbase.rest.ResultGenerator.fromRowSpec(ResultGenerator.java:35
> )
>            at
> org.apache.hadoop.hbase.rest.RowResource.get(RowResource.java:85)
>            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> …………….
> Caused by: org.apache.hadoop.hbase.TableNotFoundException: api
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegionInMeta(HConnectionManager.java:724)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegion(HConnectionManager.java:593)
>            at
>
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.loca
> teRegion(HConnectionManager.java:558)
>            at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:172)
>            at
>
> org.apache.hadoop.hbase.client.HTableFactory.createHTableInterface(HTableFactory
> .java:36)
>            ... 43 more
>
>
> I am able to hit http://localhost:8080 from the browser and it gives me
> all the
> tables present.I have no clue why it is adding /api/userstable in the url .
>
> Please tell me how can I resolve it or if there is some other forum to
> which I
> can point this issue.
>
> Thanks
>
>
>
>

Reply via email to