hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Asaf Mesika <asaf.mes...@gmail.com>
Subject Re: Checking if a coprocessor was loaded successfully from client
Date Tue, 11 Dec 2012 05:46:12 GMT
My test on a table that doesn't have any coprocessor. It does loads
successfully, but I want to understand two things:
1. How should I use getAlterStatus? I'm asking since even placing it
between modifyTable and enable and waiting for getFirst to return number of
regions fails (always returns 0)
2. How should I check they each region server managed to instantiate the
Region Observer class, i.e. managed to access the jar.

Sent from my iPhone

On 10 בדצמ 2012, at 18:04, Ted Yu <yuzhihong@gmail.com> wrote:

Your coprocessor was successfully running prior to the schema change ?

See HBASE-6873 <https://issues.apache.org/jira/browse/HBASE-6873> Clean up
Coprocessor load failure handling.


On Mon, Dec 10, 2012 at 5:11 AM, Mesika, Asaf <asaf.mesika@gmail.com> wrote:

I guess I'm missing something in the sequence of actions here:

1. I'm disabling the table. This action is synchronous.

2. I'm running the method hBaseAdmin.modifyTable(), which is *asynchronous*

3. I'm supposed to use hBaseAdmin.getAlterStatus() to check every x

seconds whether all regions have been modified.

4. Once that has passed, I can finally enable the table, which is a

synchronous action. This should signify that the table's region are online,

thus have loaded the region observer class and instantiated it - meaning,

it has found the JAR file specified in its HDFS location.

hasCoprocessor just checks whether the metadata object has the coprocessor

attribute and it if has the className you supplied to it.

How can I know that if a classname is present on a HTableDescriptor, then

al the tables's regions successfully instantiated the region observer?

On Dec 10, 2012, at 10:01 AM, anil gupta wrote:

Hi Asaf,

Have a look at the



* method of HTD:


It might be helpful for you. I have used it in past to check whether a

coprocessors is successfully added or not.



On Sun, Dec 9, 2012 at 2:25 PM, Ted Yu <yuzhihong@gmail.com> wrote:

On region server web UI, you should see the list of coprocessors loaded.

But I guess you're looking for a programmatic way of detecting




On Sun, Dec 9, 2012 at 12:29 PM, Mesika, Asaf <asaf.mesika@gmail.com>



On Dec 9, 2012, at 3:03 PM, yuzhihong@gmail.com wrote:

Which hbase version are you targeting ?


On Dec 9, 2012, at 2:55 AM, "Mesika, Asaf" <asaf.mesika@gmail.com>



I wrote a custom Region Observer.

I'm currently writing an Installer class for it.

In this installer I'm adding the region observer by adding a

coprocessor to the HTableDescriptor, and then calling modifyTable by


My question is: How can I check whether region observer was loaded

successfully for this table?

I tried searching for a way to get the Coprocessor.State somehow for


region observer so I'll know it's ACTIVE, but couldn't find a way.

Thank you,



Thanks & Regards,

Anil Gupta

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message