[ https://issues.apache.org/jira/browse/HBASE-8533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nick Dimiduk updated HBASE-8533: -------------------------------- Fix Version/s: (was: 1.1.0) 1.2.0 2.0.0 > 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 > Assignee: Julian Zhou > Priority: Minor > Fix For: 2.0.0, 1.2.0 > > 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 (v6.3.4#6332)