HBase Coprocessor Endpint運行機制

來源:互聯網
上載者:User

 Observer包括MasterObserver,RegionObserver和WALObserver,就類似RDBMS裡面的trigger,Observer能夠讓我們針對Hbase的各種事件(比如put操作、get操作、Region的split或者是move等等)hook我們的代碼,可以讓我們的代碼在這些事情對應操作之前執行(pre*)還是之後執行(post*),需要注意的就是我們hook的代碼操作的對象是region,如果要操作所有的region就要靠endpoint了;

    Endpoint就類似RDBMS裡面的Stored procedure了,可以直接在Region Server上執行我們的代碼,它主要提供了能夠操作單個Region的proxy和操作多個Regions的proxy,這樣我們可以做一些sum,count的操作,不用再client端去做(資料量大,client端撐不了)。這裡重點說一下Coprocessor。

   用戶端定義Coprocessor介面實現,並繼承BaseEndpointCoprocessor類;調用HTable.coprocessorExec( Class<T> protocol, byte[] startKey, byte[] endKey,

      Batch.Call<T,R> callable, Batch.Callback<R> callback)

    根據startKey,endKey結合region Meta表,找出相應region的startKeys,在用戶端多線程(ExecutorService,有多少對應region,就分多少個線程)串連相應的regionserver中的Region,

     在該Region地區執行用戶端定義的Coprocessor實現,執行的結果用Futrue封裝。

     然後用戶端統一遍曆Futrue擷取,返回每個region對應的結構Map<regionName,T>

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.