日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

hbase(三)coprocessor

發(fā)布時(shí)間:2025/3/17 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbase(三)coprocessor 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹

coprocessor這個(gè)單詞看起來(lái)很神秘,直譯為協(xié)處理器,其實(shí)可以理解成依賴于regionserver進(jìn)程的輔助處理接口。

hbae在0.92版本之后提供了coprocessor接口。目前hbase支持兩種coprocessor,endpoint和observer。hbase在未來(lái)版本可能考慮將coprocessor進(jìn)程獨(dú)立出來(lái),單獨(dú)起個(gè)服務(wù)。

?

endpoint coprocessor

Endpoint 協(xié)處理器類似傳統(tǒng)數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程,客戶端可以調(diào)用這些 Endpoint 協(xié)處理器執(zhí)行一段 Server 端代碼,并將 Server 端代碼的結(jié)果返回給客戶端進(jìn)一步處理,最常見(jiàn)的用法就是進(jìn)行聚集操作。如果沒(méi)有協(xié)處理器,當(dāng)用戶需要找出一張表中的最大數(shù)據(jù),即 max 聚合操作,就必須進(jìn)行全表掃描,在客戶端代碼內(nèi)遍歷掃描結(jié)果,并執(zhí)行求最大值的操作。這樣的方法無(wú)法利用底層集群的并發(fā)能力,而將所有計(jì)算都集中到 Client 端統(tǒng)一執(zhí)行,勢(shì)必效率低下。利用 Coprocessor,用戶可以將求最大值的代碼部署到 HBase Server 端,HBase 將利用底層 cluster 的多個(gè)節(jié)點(diǎn)并發(fā)執(zhí)行求最大值的操作。即在每個(gè) Region 范圍內(nèi)執(zhí)行求最大值的代碼,將每個(gè) Region 的最大值在 Region Server 端計(jì)算出,僅僅將該 max 值返回給客戶端。在客戶端進(jìn)一步將多個(gè) Region 的最大值進(jìn)一步處理而找到其中的最大值。這樣整體的執(zhí)行效率就會(huì)提高很多。說(shuō)白了,coprocessor就是hbase提供一些接口和規(guī)則,讓你可以在regionserver服務(wù)中執(zhí)行你自定義的代碼。這個(gè)規(guī)則就是基于google的protobuf。

?

endpoint observer在多個(gè)regionserver上執(zhí)行,執(zhí)行結(jié)果返回給client,這個(gè)過(guò)程有點(diǎn)像mapreduce,map操作在regionserver端,reduce在client端。下圖為endpoint執(zhí)行流程。

?

?

observer coprocessor

另外一種協(xié)處理器叫做 Observer Coprocessor,這種協(xié)處理器類似于傳統(tǒng)數(shù)據(jù)庫(kù)中的觸發(fā)器,思路上類似AOP的思想,當(dāng)發(fā)生某些事件的時(shí)候這類協(xié)處理器會(huì)被 Server 端調(diào)用。Observer Coprocessor 就是一些散布在 HBase Server 端代碼中的 hook 鉤子.

在Region層面,比如:put 操作之前有鉤子函數(shù) prePut,該函數(shù)在 put 操作執(zhí)行前會(huì)被 Region Server 調(diào)用;在 put 操作之后則有 postPut 鉤子函數(shù)。還有例如get,delete,scan等其他操作的鉤子.

在regionserver層面,observer coprocessor還提供了WALObserver

在MasterObserver層面,提供了DDL操作的相關(guān)鉤子,create,delete等

?

下圖為observer coprocessor執(zhí)行流程,注意最后的regionObserver是在服務(wù)端執(zhí)行的,因此自定義的observer coprocessor代碼打包后需要放在hbase服務(wù)端也就是regionserver的classpath下。

?

?

例子

參考hbaes源碼中的src/example/coprocessor

?

引用

https://blogs.apache.org/hbase/entry/coprocessor_introduction

?

轉(zhuǎn)載于:https://www.cnblogs.com/ulysses-you/p/9256723.html

總結(jié)

以上是生活随笔為你收集整理的hbase(三)coprocessor的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。