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

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

    Description: 
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.

  was:
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.

    
> Pairwise HBase rest service with HBase serivce.
> -----------------------------------------------
>
>                 Key: HBASE-8533
>                 URL: https://issues.apache.org/jira/browse/HBASE-8533
>             Project: HBase
>          Issue Type: Improvement
>          Components: REST, scripts
>    Affects Versions: 0.94.3, 0.98.0
>            Reporter: Julian Zhou
>            Priority: Minor
>             Fix For: 0.94.3, 0.98.0
>
>
> 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