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

2018-09-12 16:02 更新

協(xié)處理器的類型

觀察者協(xié)處理器

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

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

安全

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

參照完整性

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

二級(jí)索引

您可以使用協(xié)處理器來(lái)維護(hù)二級(jí)索引。

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

RegionObserver

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

RegionServerObserver

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

MasterObserver

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

WalObserver

WalObserver允許您觀察與寫(xiě)入預(yù)寫(xiě)日志(WAL)相關(guān)的事件。

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

端點(diǎn)協(xié)處理器

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

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

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

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

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)