Unfortunately, the per-region coprocessor list was dropped from HServerLoad in HBASE-5258. This doesn't leave any easy way for a client to list the loaded coprocessors on a per-region basis, that I'm aware of.
If you feel like this would be useful to provide, please open a JIRA describing what you'd like to see. Bonus points for contributing a patch! On Mon, Oct 21, 2013 at 8:32 PM, Wei Tan <[email protected]> wrote: > > > Hi Gary, thanks! > It seems that the region observer been removed behavior, is per region and > NOT per coprocessor. So do I have to query each region to get the per > region health status? Or, is there a table level API telling me something > like, I have 10 regions and an observer has been removed in 2 out of the 10 > regions? > > Best, > Wei > > From my iPhone > > > On Oct 21, 2013, at 10:06 PM, "Gary Helmling" <[email protected]> > wrote: > > > > > You can't remove a coprocessor. > > > > > > Well, you can, but that would require a rolling restart. > > > > > > It still exists and is still loaded. > > > > > > > > Assuming we are talking about RegionObserver coprocessors here, when a > > coprocessor throws an exception (other than IOException), it is either: > > > > a) removed from the list of active RegionObservers being invoked on the > > region's operations > > b) or if "hbase.coprocessor.abortonerror" is "true", the regionserver > aborts > > > > The coprocessor class is of course still in memory on the regionserver, > but > > that instance will no longer be invoked in any pre/post hooks for > > operations on that region. > > > > Back to the original question, the coprocessor is only removed from the > > list of active coprocessors for the region(s) where it has thrown an > > exception. It will still be active on any regions where it has not > thrown > > an exception. >
