Hi Hayden, Currently there is no workaround. We can't unload already loaded classes unless we make changes to Hbase's classloader design and I believe its not that trivial.
- Bharath On Tue, Oct 28, 2014 at 2:52 AM, Hayden Marchant <[email protected]> wrote: > I have been using a RegionObserver coprocessor on my HBase 0.94.6 cluster > for quite a while and it works great. I am currently upgrading the > functionality. When doing some testing in our integration environment I met > with the issue that even when I uploaded a new version of my coprocessor > jar to HDFS, HBase did not recognize it, and it kept using the old version. > > I even disabled/reenabled the table - no help. Even with a new table, it > still loads old class. Only when I changed the location of the jar in HDFS, > did it load the new version. > > I looked at the source code of CoprocessorHost and I see that it is > forever holding a classloaderCache with no mechanism for clearing it out. > > I assume that if I restart the region server it will take the new version > of my coprocessor. > > Is there any workaround for upgrading a coprocessor without either > changing the path, or restarting the HBase region server? > > Thanks, > Hayden > > -- Bharath Vissapragada <http://www.cloudera.com>
