HBase协处理器加载过程(1.2.x)

1、首先来看ObserverCoprocessor:
1.观察者协处理器的静态加载的配置是在hbase-site.xml中配置以下属性:
经过hbase.coprocessor.region.classes 配置 RegionObservers 和 Endpoints.
经过hbase.coprocessor.wal.classes 配置 WALObservers.
经过hbase.coprocessor.master.classes 配置MasterObservers.


hbase.coprocessor.region.classes:会被加载到默认全部表上。
hbase.coprocessor.master.classes:由HMaster进程加载。


对应的java类分别是:HMaster、HRegion、FSHLog
2.HMaster
HMaster中有一个属性叫MasterCoprocessorHost cpHost;
而关于MasterCoprocessorHost类的描述:
为面向主机的操做提供协处理器框架和环境。@link HMaster经过这个类与加载的协处理器进行交互。
BaseMasterObserver实现MasterObserver,咱们自定义的Observer协处理器实现BaseMasterObserver。而这个类中有MasterObserver中全部的方法,而且最终调用对应的方法。
好比:
 
建立表时,会在CreateTableHandler类中的调用:
 
3.HRegion
一样也有一个属性叫private RegionCoprocessorHost coprocessorHost;
RegionCoprocessorHost类的描述信息:
实如今@link区域内加载的coprocessor环境和运行时支持。
在各方法中调用:
 
HRegion中调用钩子函数:
 


3. FSHLog
FSHLog中的属性为:WALCoprocessorHost,这个类做用同上边两个同样。
调用例子
FSHLog类中的append方法调用协处理器的钩子函数:
 


2、EndPoint协处理器
动态RPC端点相似于存储过程。终端能够随时从客户机调用。调用时,会在目标区域或区域远程执行,并将执行结果返回给客户端。
Endpoint协处理器—动态rpc协议,直接在region进行计算,编写客户端代码调用服务,即将结果返回到客户端(Reponse)。
相关文章
相关标签/搜索