本篇內(nèi)容介紹了“HBase協(xié)處理器類型有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)公司依托強大的技術(shù)實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
概述:
在HBase中,使用Get或Scan獲取數(shù)據(jù),而在RDBMS中使用SQL查詢。為了只獲取相關(guān)數(shù)據(jù),您使用HBase Filter過濾它,而在RDBMS中使用WHERE謂詞。
獲取數(shù)據(jù)后,對其執(zhí)行計算。這種范型適用于只有幾千行和幾列的“小數(shù)據(jù)”。然而,當(dāng)擴展到數(shù)十億行和數(shù)百萬列時,跨網(wǎng)絡(luò)移動大量數(shù)據(jù)將在網(wǎng)絡(luò)層造成瓶頸,客戶端需要足夠強大并有足夠的內(nèi)存來處理大量數(shù)據(jù)和計算。此外,客戶端代碼可能會變得又大又復(fù)雜。
在這種情況下,使用協(xié)處理器是有意義的。您可以將業(yè)務(wù)計算代碼放入運行在與數(shù)據(jù)相同位置的RegionServer上的協(xié)處理器中,并將結(jié)果返回給客戶機。
這只是使用協(xié)處理器可以帶來好處的一個場景。下面是一些類比,可能有助于解釋協(xié)處理器的一些好處。
協(xié)處理器類比:
1.觀察者協(xié)處理器類似于RDBMS中的觸發(fā)器,因為它在特定事件(例如Get或Put)發(fā)生之前或之后執(zhí)行代碼。端點協(xié)處理器類似于RDBMS中的存儲過程,因為它允許您在RegionServer本身而不是在客戶機上對數(shù)據(jù)執(zhí)行自定義計算。
2.如果您熟悉面向方面編程(AOP),那么可以將協(xié)處理器視為應(yīng)用通知,即在將請求傳遞到最終目的地(甚至更改目的地)之前攔截請求,然后運行一些定制代碼。
協(xié)處理器實現(xiàn)概述
1.你的類應(yīng)該實現(xiàn)其中一個協(xié)處理器接口—協(xié)處理器、RegionObserver、CoprocessorService。
2.使用HBase Shell靜態(tài)地(從配置中)或動態(tài)地加載協(xié)處理器。
3.從客戶端代碼調(diào)用協(xié)處理器。HBase對協(xié)處理器的處理是透明的。
協(xié)處理器的類型:
1.Observer Coprocessors(觀察者協(xié)處理器)
觀察者協(xié)處理器在特定事件發(fā)生之前或之后被觸發(fā)。發(fā)生在事件之前的觀察者使用以前綴開頭的方法,如prePut。僅在以post前綴(如postPut)開頭的事件覆蓋方法之后發(fā)生的觀察者。
觀察者協(xié)處理器使用場景:
a.安全:
在執(zhí)行Get或Put操作之前,可以使用preGet或prePut方法檢查權(quán)限。
b.參照完成性:
HBase不直接支持RDBMS的引用完整性概念(也稱為外鍵)。您可以使用協(xié)處理器來實現(xiàn)這種完整性。例如,如果您有一個業(yè)務(wù)規(guī)則,即對users表的每次插入都必須在user_daily_考勤表中跟隨相應(yīng)的條目,那么您可以實現(xiàn)一個協(xié)處理器來使用user上的prePut方法將一條記錄插入user_daily_考勤中。
c.二級索引
您可以使用協(xié)處理器來維護二級索引。
a.RegionObserver :一個RegionObserver協(xié)處理器允許您觀察某個區(qū)域上的事件,比如Get和Put操作。
b.RegionServerObserver:
RegionServerObserver允許您觀察與RegionServer操作相關(guān)的事件,例如啟動、停止或執(zhí)行合并、提交或回滾。
c.MasterObserver:
MasterObserver允許您觀察與HBase主節(jié)點相關(guān)的事件,比如表創(chuàng)建、刪除或模式修改。
d.WalObserver
WalObserver允許您觀察與寫提前日志相關(guān)的事件(WAL)。
2.Endpoint Coprocessor(端點協(xié)處理器)
Endpoint Coprocessor允許您在數(shù)據(jù)的位置執(zhí)行計算。看協(xié)處理器的類比。例如,需要計算跨越數(shù)百個區(qū)域的整個表的運行平均值或求和。
與以透明方式運行代碼的Observer Coprocessor不同,必須使用表或HTable中可用的CoprocessorService()方法顯式地調(diào)用Endpoint Coprocessor。
Endpoint Coprocessor不應(yīng)該使用HBase內(nèi)部機制,而應(yīng)該只使用公共api;理想情況下,Endpoint Coprocessor應(yīng)該只依賴于接口和數(shù)據(jù)結(jié)構(gòu)。這并不總是可能的,但是要注意這樣做會使端點變得脆弱,容易隨著HBase內(nèi)部的發(fā)展而崩潰。HBase內(nèi)部api被標(biāo)注為私有的或演化的,在刪除之前不需要遵守語義版本規(guī)則或一般的java棄用規(guī)則。
“HBase協(xié)處理器類型有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!