Observer[Trigger] and Endpoint[Stored Procedures]
Deploy observer :
~]#gradle clean shadowjar #or build jar anyway
hbase>disable 't2'
hbase>alter 't2', 'METHOD'=>'table_att', 'COPROCESSOR'=>'file://<PATH_FILE.JAR>|<PACKAGE.CLASS>|1001'
hbase>enable 't2'
hbase>desc 't2' #To verify deploment.
Undeploy observer:
alter 'dataTbl', 'METHOD'=>'table_att_unset', 'NAME'=>'COPROCESSOR$1'
--------------------------------------------------------------------------------------------------------
Deploy endpoint :
1. Update hbase-site.xml
<property>
<name>hbase.coprocessor.region.classes</name>
<value><PACKAGE.CLASS></value>
</property>
2. Update hbase-env.sh
export HBASE_CLASSPATH=/home/<USER>/RegionObservers-1.0-all.jar
3. Restart hbase
4. Test by running client app
java -cp RegionObservers-1.0-all.jar:lib/guava-18.0.jar:lib/protobuf-java-2.5.0.jar <PACKAGE.CLASS>"
Known issues:
Problem#1:Regionserver terminates due to exception like "jar not found" or "observer class not found" due to incorrect package name or file location while deploying observer.
Soln : add property in hbase-site.xml
<property>
<name>hbase.coprocessor.abortonerror</name>
<value>false</value>
</property>