hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Axiak <m...@axiak.net>
Subject Re: Upgrading a coprocessor
Date Wed, 29 Oct 2014 02:03:15 GMT
Because of this limitation, we actually ship a shaded version of each
release with a vX_X_X prefix in the class path [1].

This allows us to load multiple versions of the same coprocessor and
upgrade the consumers of the coprocessors independently. Of course the
cost is pretty steep - we have to update our imports whenever we move
to a new coprocessor version (fortunately this is pretty rare for us).

1: https://github.com/HubSpot/hbase-support/blob/master/HubSpotCoprocessors/AggregationCoprocessor/pom.xml#L53-L81

On Tue, Oct 28, 2014 at 7:51 PM, iain wright <iainwrig@gmail.com> wrote:
> Hi Hayden,
>
> We ran into the same thing & ended up going with a rudimentary cp deploy
> script for appending epoch to the cp name, placing on hdfs, and
> disabling/modifying hbase table/enabling
>
> Heres the issue for this: https://issues.apache.org/jira/browse/HBASE-9046
>
> -
>
> --
> Iain Wright
>
> This email message is confidential, intended only for the recipient(s)
> named above and may contain information that is privileged, exempt from
> disclosure under applicable law. If you are not the intended recipient, do
> not disclose or disseminate the message to anyone except the intended
> recipient. If you have received this message in error, or are not the named
> recipient(s), please immediately notify the sender by return email, and
> delete all copies of this message.
>
> On Tue, Oct 28, 2014 at 10:51 AM, Bharath Vissapragada <
> bharathv@cloudera.com> wrote:
>
>> 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 <haydenm@amobee.com>
>> 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>
>>

Mime
View raw message