Hi,
I was able to determine the cause of the problem. Upgrading from cdh4.x to cdh5.x, hbase region server starts up the coprocessors in a separate JVM. Therefore, the code extending HRegionServer which creates a singleton has two separate copies of the class object. In cdh4.x this wasn't the case. I have moved the code into extended BaseRegionObserver by overriding start/stop methods. I can see the start method being called multiple times. I have synchronized this code as well as only allowing it to execute once. I have also implemented the stop method in BaseRegionObserver. During shutdown of region server I see it being called multiple times as well. I only allow the code to execute once. I am concerned about the stop method. In normal region server operation (not shutdown condition), can the stop method in BaseRegionObserver be executed? If so, what circumstance can this happen? Thanks, ________________________________ From: Ted Yu <[email protected]> Sent: Thursday, December 29, 2016 4:10 PM To: [email protected] Subject: Re: hbase.regionserver.impl no longer available Can you show your code involving usage of hbase.regionserver.impl ? Please also show the full stack trace of NPE. A quick check across 0.98, branch-1 and master doesn't reveal difference around this config. Cheers On Thu, Dec 29, 2016 at 7:51 AM, George Forman <[email protected]> wrote: > Hi, > > I have upgraded from cdh4.x to cdh5.6.0. We use HBase RegionServer > coprocessor (observer model) for prepost for our data analysis. The > coprocessor uses our proprietory statistics collection, as well as, > implementing our JMX interface to retrieve those stats. To do this we have > leveraged hbase.regionserver.impl by providing our extension of > HRegioinServer. eg: public class MyStatsHRegionServer extends HRegionServer > {...} > > > > We are getting a NPE when the region server executes the coprocessor > because I can't specify the extended class via hbase.regionserver.impl. I > have looked around at hbase classes and can't find anything obvious that is > a replacement. Does anyone have a suggestion on how to resolve this problem? > > > Thanks > >
