[ 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.