05分布式NOSQL HBASE - Coprocessor协调器



(原文地址:http://blog.csdn.net/codemosi/article/category/2777041,转载麻烦带上原文地址。hadoop hive hbase mahout storm spark kafka flume,等连载中,做个爱分享的人奋斗

1 那么问题又来了  ????
1:如果要对HBase的User表,做一些sum,orderby等常用的聚合怎么搞。1:如果javaapi 全部读出来,表太大时显然这种方案不合适,2,mapreduce 分布式的批量读出再算,但是当数据小的时候,mr任务要消耗的资源大,有点牛刀。
        为解决这种 sum,orderby等常用的聚合聚合操作的,HBase的org.apache.hadoop.hbase.coprocessor 协处理器机智,提供在服务端region运行代码的机制,的解决方案,如GET 操作,直接在服务端执行。并不需要把结果返回回来。中国山东找蓝翔

2:假设我们在user表执行DELETE 或者GET等操作之后,要做操作日志
       HBase的org.apache.hadoop.hbase.coprocessor 协处理器也能处理这样的需求。

2 协处理器概述
HBase有全表,和单表两种作用域的协处理器,以及 observer和endpoint两种调用方式的协处理器,observer为hbase 的GET,PUT,SCAN,DELETE等操作提供了Hook钩子,类似于onClick do,适合在表的某些操作前后的需求。endpoint是一个服务端的方法,我们要使用时,通过rpc可以直接调用,适合做聚合。

3.1 协处理器observer模式关键API

3.2 协处理器endpoint(RPC)模式关键API
    3.2.1服务端类关键接口
    //接受到请求后,真正执行的方法。
    实现com.google.protobuf.Service里的接口

   //初始化获取env对象。
    public void start(CoprocessorEnvironment env) throws IOException {}
   //结束时关闭相关资源
    public void stop(CoprocessorEnvironment env) throws IOException{}

    3.2.2客户端端类关键接口
    //发起请求
    coprocessorService(java.lang.Class, byte[], byte[], org.apache.hadoop.hbase.client.coprocessor.Batch.Call)]coprocessorService[/url](Class<T> service, byte[] startKey, byte[] endKey, org.apache.hadoop.hbase.client.coprocessor.Batch.Call<T,R> callable)

    //执行rpc请求的时候,真正执行的代码,在服务端执行。
    public Long call(TestEndpoint.CountService counter)


4.1 协处理器observer模式程序
  有空再补充
4.2 协处理器endpoint(RPC)模式程序

    有空再补充


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值