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

2021-10-16 14:04:35 字數 1249 閱讀 5690

1、自定義協處理器

hbase 版本: 2.x

使用自定義的協處理器需要實現coprocessor, regionobserver, coprocessorservice這三個介面,如下圖:

可以看出協處理器的載入分為靜態載入和動態載入,靜態載入需要修改hbase-site.xml配置檔案,這將對所有的hbase表生效;如果單純的只對某張表生效,需要通過hbase shell命令列方式進行動態的載入。

2、動態載入協處理器

這種方式想要對錶的所有region生效,那麼最好是將jar包放到hdfs上面,如下:

2.1 上傳jar包

hadoop fs -put jar名字 /tmp

2.2 配置協處理器

# 操作表的時候需要關閉表:

hbase> disable 'test1'

# 載入協處理器

hbase> alter 'mytable', method => 'table_att', 'coprocessor' => '/tmp/hbase-solr-1.1-snapshot.jar|com.***.hbase.coprocesser.solrindexcoprocessorobserver|1'

hbase> enable 'mytable' # 開啟表

配置協處理器的結構如下:

hbase> alter 'mytable', method => 'table_att', 'coprocessor' => '①|②|③|④'

解釋下上面各個引數:

①:協處理器jar包路徑,要保證所有的regionserver可讀取到。也可以是本地路徑,不過建議是放在hdfs上。

②:協處理器的完整類名。

③:協處理器優先順序,整數表示。可以為空。

④:傳遞給協處理器的引數,可以為空。

注:各引數間不要有空格。

2.3 檢視表的描述資訊

2.4 解除安裝協處理器

hbase> disable 'mytable' # 禁用表,

hbase> alter 'mytable', method => 'table_att_unset', name => 'coprocessor$1'

hbase> enable 'mytable' # 禁用表後啟用表,

注意① 如果協處理器實現的介面異常,從表對應的regionserver的日誌裡面將看到如下錯誤:

方式1:重啟regionserver

方式2:把jar包重新改名字,重新修改表的協處理器資訊,否則表依然載入的是以前的資訊

HBase協處理器

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

Hbase協處理器

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

Hbase協處理器

observer masterobserver walobserver observer提供了一些設計好的 函式,每個操作在集群伺服器端都可以被呼叫。endpoint observer 與 endpoint總結 協處理器載入方式 動態載入 sh hbase disable table名 sh hba...