Julian Zhou 2013-05-10, 06:41
Jean-Daniel Cryans 2013-05-10, 17:44
Ted Yu 2013-05-10, 13:45
Stack 2013-05-10, 18:07
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
Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)
Julian Zhou 2013-05-12, 16:22