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

2018-09-11 16:27 更新

協(xié)處理器概述

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

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

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

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

協(xié)處理器類比

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

Observer協(xié)處理器類似于RDBMS中的觸發(fā)器,因?yàn)樗谔囟ㄊ录ɡ纾?code>Get或Put)發(fā)生之前或之后執(zhí)行代碼。端點(diǎn)協(xié)處理器類似于RDBMS中的存儲(chǔ)過程,因?yàn)樗试S您對(duì)RegionServer本身上的數(shù)據(jù)而不是客戶端上的數(shù)據(jù)執(zhí)行自定義計(jì)算。

MapReduce

MapReduce的工作原理是將計(jì)算移動(dòng)到數(shù)據(jù)位置。協(xié)處理器在相同的主體上運(yùn)行。

AOP

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

協(xié)處理器實(shí)現(xiàn)概述

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

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

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

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)