w.r.t. #3, there is a config parameter: "hbase.coprocessor.abortonerror" which determines whether the hosting server should abort.
See the following tests for examples: hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.java hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.java hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java hbase-server/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java Cheers On Mon, Oct 21, 2013 at 2:41 PM, Wei Tan <[email protected]> wrote: > Hello, I want to check the status of each coprocessor, in a given table. > Let's say I have 3 CPs and one of them is removed due to some unhandled > exception, so I want to see this status (3 deployed, 2 currently alive). > > I found this from > http://blogs.apache.org/hbase/entry/coprocessor_introduction so my > question is: > > 1. is the coprocessor shown in shell the actually live one, i.e., > excluding those loaded but removed later? > 2. is there a way to get it from Java API? > 3. as far as I understand, during an un-handled exception, the > coprocessorhost will remove this cp from ALL region servers, not only the > server where the exception occurs? Is it correct? > > Thanks, > Wei > > HBase Shell Coprocessor Status > After a coprocessor has been configured, you also need to check the > coprocessor status using the shell or master and region server web UIs to > determine if the coprocessor has been loaded successfully. > Shell command: > hbase(main):018:0> alter 't1', METHOD => 'table_att', > > > 'coprocessor'=>'|org.apache.hadoop.hbase.coprocessor.AggregateImplementation|1001|arg1=1,arg2=2' > Updating all regions with the new schema... > 1/1 regions updated. > Done. > 0 row(s) in 1.1060 seconds > > hbase(main):019:0> enable 't1' > 0 row(s) in 2.0620 seconds > > hbase(main):020:0> status 'detailed' > version 0.92-tm-6 > 0 regionsInTransition > master coprocessors: [] > 1 live servers > localhost:52761 1328082515520 > requestsPerSecond=3, numberOfOnlineRegions=3, usedHeapMB=32, > maxHeapMB=995 > -ROOT-,,0 > numberOfStores=1, numberOfStorefiles=1, > storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, > storefileIndexSizeMB=0, readRequestsCount=54, writeRequestsCount=1, > rootIndexSizeKB=0, totalStaticIndexSizeKB=0, > totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, > compactionProgressPct=NaN, coprocessors=[] > .META.,,1 > numberOfStores=1, numberOfStorefiles=0, > storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, > storefileIndexSizeMB=0, readRequestsCount=97, writeRequestsCount=4, > rootIndexSizeKB=0, totalStaticIndexSizeKB=0, > totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, > compactionProgressPct=NaN, coprocessors=[] > t1,,1328082575190.c0491168a27620ffe653ec6c04c9b4d1. > numberOfStores=2, numberOfStorefiles=1, > storefileUncompressedSizeMB=0, storefileSizeMB=0, memstoreSizeMB=0, > storefileIndexSizeMB=0, readRequestsCount=0, writeRequestsCount=0, > rootIndexSizeKB=0, totalStaticIndexSizeKB=0, > totalStaticBloomSizeKB=0, totalCompactingKVs=0, currentCompactedKVs=0, > compactionProgressPct=NaN, > coprocessors=[AggregateImplementation] > 0 dead servers > > If you cannot find the coprocessor loaded, you need to check the server > log files to discover the reason for its failure to load.
