Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
HBase, mail # user - Checking if a coprocessor was loaded successfully from client

Mesika, Asaf 2012-12-09, 10:55
yuzhihong@... 2012-12-09, 13:03
Mesika, Asaf 2012-12-09, 20:29
Ted Yu 2012-12-09, 22:25
anil gupta 2012-12-10, 08:01
Azury 2012-12-10, 08:12
Mesika, Asaf 2012-12-10, 13:12
Mesika, Asaf 2012-12-10, 13:11
Ted Yu 2012-12-10, 16:03
Copy link to this message
Re: Checking if a coprocessor was loaded successfully from client
Asaf Mesika 2012-12-11, 05:46
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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>


On Dec 9, 2012, at 3:03 PM, [EMAIL PROTECTED] wrote:
Which hbase version are you targeting ?
On Dec 9, 2012, at 2:55 AM, "Mesika, Asaf" <[EMAIL PROTECTED]>

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
Ted Yu 2012-12-11, 06:47
Asaf Mesika 2012-12-12, 07:08
Ted Yu 2012-12-12, 19:44
Andrew Purtell 2012-12-12, 21:47