日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hbase(三)coprocessor

發布時間:2025/3/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hbase(三)coprocessor 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹

coprocessor這個單詞看起來很神秘,直譯為協處理器,其實可以理解成依賴于regionserver進程的輔助處理接口。

hbae在0.92版本之后提供了coprocessor接口。目前hbase支持兩種coprocessor,endpoint和observer。hbase在未來版本可能考慮將coprocessor進程獨立出來,單獨起個服務。

?

endpoint coprocessor

Endpoint 協處理器類似傳統數據庫中的存儲過程,客戶端可以調用這些 Endpoint 協處理器執行一段 Server 端代碼,并將 Server 端代碼的結果返回給客戶端進一步處理,最常見的用法就是進行聚集操作。如果沒有協處理器,當用戶需要找出一張表中的最大數據,即 max 聚合操作,就必須進行全表掃描,在客戶端代碼內遍歷掃描結果,并執行求最大值的操作。這樣的方法無法利用底層集群的并發能力,而將所有計算都集中到 Client 端統一執行,勢必效率低下。利用 Coprocessor,用戶可以將求最大值的代碼部署到 HBase Server 端,HBase 將利用底層 cluster 的多個節點并發執行求最大值的操作。即在每個 Region 范圍內執行求最大值的代碼,將每個 Region 的最大值在 Region Server 端計算出,僅僅將該 max 值返回給客戶端。在客戶端進一步將多個 Region 的最大值進一步處理而找到其中的最大值。這樣整體的執行效率就會提高很多。說白了,coprocessor就是hbase提供一些接口和規則,讓你可以在regionserver服務中執行你自定義的代碼。這個規則就是基于google的protobuf。

?

endpoint observer在多個regionserver上執行,執行結果返回給client,這個過程有點像mapreduce,map操作在regionserver端,reduce在client端。下圖為endpoint執行流程。

?

?

observer coprocessor

另外一種協處理器叫做 Observer Coprocessor,這種協處理器類似于傳統數據庫中的觸發器,思路上類似AOP的思想,當發生某些事件的時候這類協處理器會被 Server 端調用。Observer Coprocessor 就是一些散布在 HBase Server 端代碼中的 hook 鉤子.

在Region層面,比如:put 操作之前有鉤子函數 prePut,該函數在 put 操作執行前會被 Region Server 調用;在 put 操作之后則有 postPut 鉤子函數。還有例如get,delete,scan等其他操作的鉤子.

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

在MasterObserver層面,提供了DDL操作的相關鉤子,create,delete等

?

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

?

?

例子

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

?

引用

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

?

轉載于:https://www.cnblogs.com/ulysses-you/p/9256723.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。