You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Stuti Awasthi <st...@hcl.com> on 2011/08/25 11:49:34 UTC

Facing issues in rest webservice with Hbase using Ruby

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$HConnectionImplementation@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.prefetchRegionCache(HConnectionManager.java:648)
            at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:702)
            at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:593)
            at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(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.locateRegionInMeta(HConnectionManager.java:724)
            at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:593)
            at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(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

________________________________
::DISCLAIMER::
-----------------------------------------------------------------------------------------------------------------------

The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only.
It shall not attach any liability on the originator or HCL or its affiliates. Any views or opinions presented in
this email are solely those of the author and may not necessarily reflect the opinions of HCL or its affiliates.
Any form of reproduction, dissemination, copying, disclosure, modification, distribution and / or publication of
this message without the prior written consent of the author of this e-mail is strictly prohibited. If you have
received this email in error please delete it and notify the sender immediately. Before opening any mail and
attachments please check them for viruses and defect.

-----------------------------------------------------------------------------------------------------------------------

Re: Facing issues in rest webservice with Hbase using Ruby

Posted by "vincent.peres@gmail.com" <vi...@gmail.com>.
We are using MassiveRecord here at Companybook, it's a ruby client for HBase
using Thrift. There is also an ORM on top of that!
https://github.com/CompanyBook/massive_record

Let me know if it fits your requirements, and why if it doesn't so we can
continue to improve it :)


On Sat, Aug 27, 2011 at 2:30 AM, Andrew Purtell <ap...@apache.org> wrote:

> Stuti,
>
> > 2011-08-25 15:10:56,807 ERROR org.mortbay.log: /api/userstable
> > java.lang.RuntimeException:
> org.apache.hadoop.hbase.TableNotFoundException: api
>
>
> Whatever you are using to communicate with the HBase REST server was
> designed for the previous version of it.
>
> URLs to the REST interface no longer begin with /api
>
> Now, URLs begin with the table name, e.g. /userstable
>
> You will need to contact the supplier of this "" package for a more recent
> version, or use something else.
>
>
> Best regards,
>
>
>         - Andy
>
> Problems worthy of attack prove their worth by hitting back. - Piet Hein
> (via Tom White)
>
>

Re: Facing issues in rest webservice with Hbase using Ruby

Posted by Andrew Purtell <ap...@apache.org>.
Stuti,

> 2011-08-25 15:10:56,807 ERROR org.mortbay.log: /api/userstable
> java.lang.RuntimeException: org.apache.hadoop.hbase.TableNotFoundException: api


Whatever you are using to communicate with the HBase REST server was designed for the previous version of it.

URLs to the REST interface no longer begin with /api

Now, URLs begin with the table name, e.g. /userstable

You will need to contact the supplier of this "" package for a more recent version, or use something else.

 
Best regards,


        - Andy

Problems worthy of attack prove their worth by hitting back. - Piet Hein (via Tom White)