HBase總結(10) 協處理器

2021-07-10 14:23:14 字數 2240 閱讀 9742

一、介紹

hbase作為列儲存的資料庫,很多關於統計的函式沒有直接快速的計算,因此hbase提供了協處理器的功能,協處理提供了使用者在region伺服器端插入自己的**,從而實現特定功能的權利。通過使用者自寫的協處理器,使用者可以建立二級索引、完成行數量的統計等功能。

二、解釋

1、協處理器的分類:

協處理器主要分為兩類:觀察者模式(obverser)和終端(endpoint)兩種,這兩種寫出器都是coprocessor類,從而實現協處理器框架的:

(1)觀察者模式

該模式類似於關係型資料庫中的觸發器,即使用者可以規定在客戶端或者其他進行某一種動作時,觸發乙個使用者的自定義的功能,從而實現一些其他功能。因為hbase無法直接建立二級索引,但是我們可以通過在觀察者模式中,在每次插入一條資料項時通過自定義功能實現二級索引。

(2)終端模式

該模式類似於關係型資料庫中的儲存過程,使用者可以通過rpc請求觸發終端中的**,從而實現某些功能。例如可以在終端中實現多某些錶行的統計。

2、協處理器許可權

協處理器也存在執行順序上的許可權問題,在coprocessor.priority函式中定了協處理器的級別:system、user。

(1)system:系統級別的協處理器許可權要大於使用者級別的協處理器,因此在執行協處理器的過程中,系統級協處理器先別執行,而使用者級的協處理器後備執行。

(2)相同級別的協處理器都帶有乙個序號,以辨別同級別協處理器的執行順序。

3、協處理器載入

協處理器的載入只要有兩種方式:

(1)從配置中載入

使用者可以在hbase-site.xml檔案中配置協處理器類,通過在其中配置協處理器類的位置。在配置檔案中配置項的順序很重要,因此在配置項中的順序則是協處理器載入的順序,也就是協處理器執行的順序。並且通過配置載入的協處理器肯定都是每一張表都會被應用上。在該配置中有幾個配置選項,可以規定協處理器監聽的位置:

hbase.coprocessor.master.classes      master處理,在一些master級別的操作,如建立表、刪除表等時會觸發該處理器。

hbase.coprocessor.region.classes       region處理,在region級別的操作,例如插入、刪除、獲取資料的操作時可以出發這些函式。

hbase.coprocessor.wal.classes             wal日誌檔案處理,在wal操作過程中的協處理器觸發函式。

(2)從表描述中載入

該功能是在表的描述中為其新增乙個協處理器的描述,從而將協處理器的**傳遞到region端,但是該種方法只能為特定的某一張表新增使用者定義的協處理器。

使用者可以通過htabledescriptor.setvalue()方法新增協處理器

key值:key值必須以 coprocessor開頭,通過$+數字的規定該協處理器的序號。

value值:value值有三部分組成,每一部分有 | 進行分分割,第一部分為類的路徑,第二部分為協處理器所在的類,第三部分為協處理器的等級

例子:

htabledescriptor.setvalue("coprocessor$1","hdfs://localhost:9000/user/test/test.jar|coprocessor.coprocessortest|"+coprocessor.user)

4、協處理器系統

所有的協處理器都繼承自同乙個類coprecessor類。因此所有的協處理器都具有相同的屬性:

(1)start(coprocessorenviroment env) /   stop(coprocessorenviroment env)

在協處理器的生成週期中,start函式啟動協處理器,二stop函式則停止協處理器功能。

(2)協處理器的狀態

在協處理器中定義了乙個協處理器的所有的狀態,並且所有的狀態都封裝在乙個列舉類 coprocessor.state 中:

uninstalled    協處理器的最初狀態,沒有環境,也沒有被初始化

installed          例項裝在了他的環境引數

starting            協處理器開始將要工作,也就是start()函式將要被呼叫了

active                  start函式已經被呼叫

stopping            stop函式將要被呼叫之前的狀態

stopped              stop 函式被呼叫

三、總結

該片文章先講述了協處理器的特點,如果有什麼不正確的地方,希望能夠指出

hbase 協處理器 部署 hbase 協處理器

1 自定義協處理器 hbase 版本 2.x 使用自定義的協處理器需要實現coprocessor,regionobserver,coprocessorservice這三個介面,如下圖 可以看出協處理器的載入分為靜態載入和動態載入,靜態載入需要修改hbase site.xml配置檔案,這將對所有的hb...

HBase協處理器

協處理器分兩種型別,系統協處理器可以全域性匯入region server上的所有資料表,表協處理器即是使用者可以指定一張表使用協處理器。協處理器框架為了更好支援其行為的靈活性,提供了兩個不同方面的外掛程式。乙個是觀察者 observer 類似於關聯式資料庫的觸發器。另乙個是終端 endpoint 動...

Hbase協處理器

hbase作為資料庫最經常被人詬病的特性包括 無法輕易建立 二級索引 難以求和 計數 排序等操作 比如,在舊版本的 0.92 hbase中,統計資料表的行數,需要使用counter方法,執行一次mapreduce job 才能得到。雖然hbase在資料儲存層中整合了mapreduce,能夠有效用於資...