Apache HBase協(xié)處理器的類型

2018-09-12 16:02 更新

協(xié)處理器的類型

觀察者協(xié)處理器

在特定事件發(fā)生之前或之后觸發(fā)觀察者協(xié)處理器。在事件之前發(fā)生的觀察者使用以pre前綴開頭的方法,例如,prePut。觀察者發(fā)生在以post前綴(如postPut)開頭的事件覆蓋方法之后。

用于觀察者協(xié)處理器的用例

安全

在執(zhí)行GetPut操作之前,您可以使用preGetprePut方法檢查權限。

參照完整性

HBase不直接支持refential完整性的RDBMS概念,也稱為外鍵。您可以使用協(xié)處理器來強制執(zhí)行此類完整性。例如,如果您有一個業(yè)務規(guī)則,users表中的每個插入必須后跟user_daily_attendance表中的相應條目,您可以實現協(xié)處理器以在user使用該prePut方法向user_daily_attendance插入記錄。

二級索引

您可以使用協(xié)處理器來維護二級索引。

觀察者協(xié)處理器的類型

RegionObserver

RegionObserver協(xié)處理器允許您觀察區(qū)域上的事件,例如Get 和Put操作。

RegionServerObserver

RegionServerObserver允許您觀察與RegionServer操作相關的事件,例如啟動,停止或執(zhí)行合并,提交或回滾。

MasterObserver

MasterObserver允許您觀察與HBase Master相關的事件,例如表創(chuàng)建,刪除或架構修改。

WalObserver

WalObserver允許您觀察與寫入預寫日志(WAL)相關的事件。

示例提供了觀察者協(xié)處理器的工作示例。

端點協(xié)處理器

端點處理器允許您在數據位置執(zhí)行計算。例如,需要計算橫跨數以百計區(qū)域的整個表的運行平均值或求和。

與您的代碼透明運行的觀察器協(xié)處理器相比,端點協(xié)處理器必須使用Table或HTable中提供的CoprocessorService()方法顯式調用。

從HBase 0.96開始,端點協(xié)處理器使用Google Protocol Buffers(protobuf)實現。以0.94版本編寫的端點協(xié)處理器與0.96或更高的版本不兼容。見HBASE-5448)。要將HBase群集從0.94或更早版本升級到0.96或更高版本,您需要重新實現協(xié)處理器。

協(xié)處理器端點不應使用HBase內部構件,只能利用公共API;理想情況下,CPEP應僅依賴于接口和數據結構。這并不總是可行的,但要注意這樣做會使端點變脆弱,隨著HBase內部的發(fā)展而易于破損。注釋為私有或演進的HBase內部API在刪除之前不必遵守語義版本規(guī)則或關于棄用的一般Java規(guī)則。雖然生成的protobuf文件沒有hbase受眾注釋 - 它們是由protobuf protoc工具創(chuàng)建的,它不知道HBase是如何工作的 - 它們應該被認為是@InterfaceAudience.Private,因此容易改變。

在接下來的“示例”一節(jié),提供了端點協(xié)處理器的工作示例。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號