[ 
https://issues.apache.org/jira/browse/HBASE-8533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Julian Zhou updated HBASE-8533:
-------------------------------

    Fix Version/s:     (was: 0.94.3)
                   0.95.0
    
> [REST] HBaseAdmin does not ride over cluster restart
> ----------------------------------------------------
>
>                 Key: HBASE-8533
>                 URL: https://issues.apache.org/jira/browse/HBASE-8533
>             Project: HBase
>          Issue Type: Improvement
>          Components: REST, scripts
>    Affects Versions: 0.98.0, 0.95.0
>            Reporter: Julian Zhou
>            Priority: Minor
>             Fix For: 0.98.0, 0.95.0
>
>         Attachments: 8533-trunk-v1.patch, hbase-8533-trunk-v0.patch
>
>
> For Restful servlet (org.apache.hadoop.hbase.rest.Main (0.94), 
> org.apache.hadoop.hbase.rest.RESTServer (trunk)) on Jetty, we need to first 
> explicitly start the service (% ./bin/hbase-daemon.sh start rest -p 8000 ) 
> for application running. Here is a scenario, sometimes, HBase cluster are 
> stopped/started for maintanence, but rest is a seperated standalone process, 
> which binds the HBaseAdmin at construction method.
> HBase stop/start cause this binding lost for existing rest servlet. Rest 
> servlet still exist to trying on old bound HBaseAdmin until a long time 
> duration later with an "Unavailable" caught via an IOException caught in
> such as RootResource.
> Could we pairwise the HBase service with HBase rest service with some 
> start/stop options? since seems no reason to still keep the rest servlet 
> process after HBase stopped? When HBase restarts, original rest service could 
> not resume to bind to the new HBase service via its old HBaseAdmin reference?
> So may we stop the rest when hbase stopped, or even if hbase was killed by 
> acident, restart hbase with rest option could detect the old rest process, 
> kill it and start to bind a new one?
> From this point of view, application rely on rest api in previous scenario 
> could immediately detect it when setting up http connection session instead 
> of wasting a long time to fail back from IOException with "Unavailable" from 
> rest servlet.
> Put current options from the discussion history here from Andrew, Stack and 
> Jean-Daniel,
> 1) create an HBaseAdmin on demand in rest servlet instead of keeping 
> singleton instance; (another possible enhancement for HBase client: automatic 
> reconnection of an open HBaseAdmin handle after a cluster bounce?)
> 2) pairwise the rest webapp with hbase webui so the rest is always on with 
> HBase serive;
> 3) add an option for rest service (such as HBASE_MANAGES_REST) in 
> hbase-env.sh, set HBASE_MANAGES_REST to true, the scripts will start/stop the 
> REST server.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to