Apache HBase協(xié)處理器概述

2018-09-11 16:27 更新

協(xié)處理器概述

在HBase中,使用“Get”或者“Scan”獲取數據,而在RDBMS中使用SQL查詢。為了僅獲取相關數據,您可以使用HBase Filter過濾它 ,而在RDBMS中使用WHERE謂詞。

獲取數據后,您可以對其執(zhí)行計算。這種范例適用于具有幾千行和幾列的“小數據”。但是,當您擴展到數十億行和數百萬列時,在網絡中移動大量數據將在網絡層產生瓶頸,客戶端需要足夠強大并且有足夠的內存來處理大量數據和計算。此外,客戶端代碼可能變得龐大而復雜。

在這種情況下,協(xié)處理器可能有意義。您可以將業(yè)務計算代碼放入在RegionServer上運行的協(xié)處理器中,與數據位于同一位置,并將結果返回給客戶端。

這只是使用協(xié)處理器可以帶來好處的一種情況。以下是一些類比,可能有助于解釋協(xié)處理器的一些好處。

協(xié)處理器類比

觸發(fā)器和存儲過程

Observer協(xié)處理器類似于RDBMS中的觸發(fā)器,因為它在特定事件(例如,GetPut)發(fā)生之前或之后執(zhí)行代碼。端點協(xié)處理器類似于RDBMS中的存儲過程,因為它允許您對RegionServer本身上的數據而不是客戶端上的數據執(zhí)行自定義計算。

MapReduce

MapReduce的工作原理是將計算移動到數據位置。協(xié)處理器在相同的主體上運行。

AOP

如果您熟悉面向方面編程(AOP),則可以將協(xié)處理器視為通過攔截請求然后運行某些自定義代碼來應用建議,然后將請求傳遞到其最終目標(甚至更改目標)。

協(xié)處理器實現概述

  1. 您的類應該實現一個協(xié)處理器接口 - 協(xié)處理器, RegionObserver, CoprocessorService - 僅舉幾例。
  2. 使用HBase Shell靜態(tài)或動態(tài)地加載協(xié)處理器。

  3. 從客戶端代碼調用協(xié)處理器。HBase透明地處理協(xié)處理器。

框架API在協(xié)處理器包中提供。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號