[ https://issues.apache.org/jira/browse/HBASE-8533?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Zhou updated HBASE-8533: ------------------------------- Component/s: (was: scripts) (was: REST) > [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 > Affects Versions: 0.98.0, 0.95.0 > Reporter: Julian Zhou > Assignee: Julian Zhou > Priority: Minor > Fix For: 0.98.0, 0.95.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 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