HBase Coprocessor Endpint运行机制

 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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值