[ 
https://issues.apache.org/jira/browse/HADOOP-2068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12541085
 ] 

stack commented on HADOOP-2068:
-------------------------------

Have you seen how rows are dumped out in xhtml in hql.jsp?  Would that work for 
you? You can't wrap binary data in XML so I don't think row representation as 
XML would be a general soln.  If you explicitly request a cell, then we could 
pass back binary with (data length in http headers).   

I'm thinking that main difference between the REST implemenation and current UI 
HQL querying on the master would be that REST clients would go first to the 
master but would then be redirected to the regionserver hosting the row that is 
being read or updated (as opposed to all being done on master HQL'ing).  I'm 
thinking REST clients would have to be able to deal with retry if data had been 
moved by the time they arrived at what had been the data server.  The 
alternative would be something like having the regionserver redirect back to 
the master since it is arbiter of where everything is but I imagine that could 
get complicated quickly what with there often being some lag before master 
learns that data has moved and has had chance to orchestrate redeploy in the 
new location.

> [hbase] RESTful interface
> -------------------------
>
>                 Key: HADOOP-2068
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2068
>             Project: Hadoop
>          Issue Type: New Feature
>          Components: contrib/hbase
>            Reporter: stack
>            Priority: Minor
>
> A RESTful interface would be one means of making hbase accessible to clients 
> that are not java.  It might look something like the below:
> + An HTTP GET of  http://MASTER:PORT/ outputs the master's attributes: online 
> meta regions, list of tables, etc.: i.e. what you see now when you go to 
> http://MASTER:PORT/master.jsp.
> + An HTTP GET of http://MASTER:PORT/TABLENAME: 200 if tables exists and 
> HTableDescription (mimetype: text/plain or text/xml) or 401 if no such table. 
>  HTTP DELETE would drop the table.  HTTP PUT would add one.
> + An HTTP GET of http://MASTER:PORT/TABLENAME/ROW: 200 if row exists and 401 
> if not.
> + An HTTP GET of http://MASTER:PORT/TABLENAME/ROW/COLUMNFAMILY: 
> HColumnDescriptor (mimetype: text/plain or text/xml) or 401 if no such table.
> + An HTTP GET of http://MASTER:PORT/TABLENAME/ROW/COLUMNNAME/: 200 and latest 
> version (mimetype: binary/octet-stream) or 401 if no such cell. HTTP DELETE 
> would delete the cell.  HTTP PUT would add a new version.
> + An HTTP GET of http://MASTER:PORT/TABLENAME/ROW/COLUMNNAME/TIMESTAMP: 200 
> (mimetype: binary/octet-stream) or 401 if no such cell. HTTP DELETE would 
> remove.  HTTP PUT would put this record.
> + Browser originally goes against master but master then redirects to the 
> hosting region server to serve, update, delete, etc. the addressed cell

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to