協處理器分兩種型別,系統協處理器可以全域性匯入region server上的所有資料表,表協處理器即是使用者可以指定一張表使用協處理器。協處理器框架為了更好支援其行為的靈活性,提供了兩個不同方面的外掛程式。乙個是觀察者(observer),類似於關聯式資料庫的觸發器。另乙個是終端(endpoint),動態的終端有點像儲存過程。
1.觀察者(observer)
觀察者的設計意圖是允許使用者通過插入**來過載協處理器框架的upcall方法,而具體的事件觸發的callback方法由hbase的核心**來執行。協處理器框架處理所有的callback呼叫細節,協處理器自身只需要插入新增或者改變的功能。
以hbase0.92版本為例,它提供了三種觀察者介面:
2.終端(endpoint)
終端是動態rpc外掛程式的介面,它的實現**被安裝在伺服器端,從而能夠通過hbase rpc喚醒。客戶端類庫提供了非常方便的方法來呼叫這些動態介面,它們可以在任意時候呼叫乙個終端,它們的實現**會被目標region遠端執行,結果會返回到終端。使用者可以結合使用這些強大的外掛程式介面,為hbase新增全新的特性。終端的使用,如下面流程所示:
定義乙個新的protocol介面,必須繼承coprocessorprotocol.
實現終端介面,該實現會被匯入region環境執行。
繼承抽象類baseendpointcoprocessor.
在客戶端,終端可以被兩個新的hbase client api呼叫 。單個region:htableinte***ce.coprocessorproxy(classprotocol, byte row) 。rigons區域:htableinte***ce.coprocessorexec(classprotocol, byte startkey, byte endkey, batch.callcallable)
hbase 協處理器 部署 hbase 協處理器
1 自定義協處理器 hbase 版本 2.x 使用自定義的協處理器需要實現coprocessor,regionobserver,coprocessorservice這三個介面,如下圖 可以看出協處理器的載入分為靜態載入和動態載入,靜態載入需要修改hbase site.xml配置檔案,這將對所有的hb...
Hbase協處理器
hbase作為資料庫最經常被人詬病的特性包括 無法輕易建立 二級索引 難以求和 計數 排序等操作 比如,在舊版本的 0.92 hbase中,統計資料表的行數,需要使用counter方法,執行一次mapreduce job 才能得到。雖然hbase在資料儲存層中整合了mapreduce,能夠有效用於資...
Hbase協處理器
observer masterobserver walobserver observer提供了一些設計好的 函式,每個操作在集群伺服器端都可以被呼叫。endpoint observer 與 endpoint總結 協處理器載入方式 動態載入 sh hbase disable table名 sh hba...