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)。
相關文章
相關標籤/搜索