[
https://issues.apache.org/jira/browse/HBASE-8533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrew Kyle Purtell resolved HBASE-8533.
----------------------------------------
Assignee: (was: Julian Zhou)
Resolution: Abandoned
> 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: Client
> Affects Versions: 0.98.0, 0.95.0
> Reporter: Julian Zhou
> Priority: Minor
> Attachments: 8533-0.95-v1.patch, 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 was sent by Atlassian Jira
(v8.20.7#820007)