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
> *hasCoprocessor<http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HTableDescriptor.html#hasCoprocessor%28java.lang.String%29>
> * method of HTD:
> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/HTableDescriptor.html#hasCoprocessor(java.lang.String)
> 
> It might be helpful for you. I have used it in past to check whether a
> coprocessors is successfully added or not.
> 
> HTH,
> Anil
> 
> On Sun, Dec 9, 2012 at 2:25 PM, Ted Yu <yuzhih...@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 coprocessor
>> deployment.
>> 
>> Cheers
>> 
>> On Sun, Dec 9, 2012 at 12:29 PM, Mesika, Asaf <asaf.mes...@gmail.com>
>> wrote:
>> 
>>> 0.94.0
>>> On Dec 9, 2012, at 3:03 PM, yuzhih...@gmail.com wrote:
>>> 
>>>> Which hbase version are you targeting ?
>>>> 
>>>> Thanks
>>>> 
>>>> 
>>>> 
>>>> On Dec 9, 2012, at 2:55 AM, "Mesika, Asaf" <asaf.mes...@gmail.com>
>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> 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
>>> HBaseAdmin.
>>>>> 
>>>>> 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
>> my
>>> region observer so I'll know it's ACTIVE, but couldn't find a way.
>>>>> 
>>>>> 
>>>>> Thank you,
>>>>> 
>>>>> Asaf
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 
> 
> 
> 
> -- 
> Thanks & Regards,
> Anil Gupta

Reply via email to