Just fired 8533 for this topic. Would it be a simplest approach that to
just pairwise the rest serive with hbase service in start/stop script?
Client reconnecting for an open HBaseAdmin handle for a bounced cluster
could be another enhancement in the future, then beside the above change
at script level, even keeping the rest process when hbase died makes
sense to waiting for reconnection?
于 5/11/2013 9:30 AM, Andrew Purtell 写道:
> Originally the REST gateway would create an HBaseAdmin on demand whenever
> one is needed but that slows things down and consumes local and cluster
> resources unnecessarily for the common case. I could switch it back to the
> old behavior, you are welcome to file a JIRA for that. Would not be
> unreasonable to file a JIRA for automatic reconnection of an open
> HBaseAdmin handle after a cluster bounce in addition or as an alternative,
> that's an HBase client change. Or, you can simply bounce the REST gateways
> with your ops automation along with the rest of the cluster?
> On Fri, May 10, 2013 at 2:41 PM, Julian Zhou <[EMAIL PROTECTED]> wrote:
>> Recently, lots of developments and applications were done and deployed
>> based on consuming HBase Rest API. 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.
>> Is there any JIRA discussion on this with some questions like:
>> - 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
>> 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.
>> Best Regards, Julian
Best Regards, Julian