Hbase--协处理器

1、协处理器:Coprocessor

  • 本质:类似于Hive中的udf或者MySQL的触发器
    • 本身Hbase没有提供这个功能
    • 但是提供了 这个开发的接口
    • 你可以自定义开发这个功能,集成在Hbase的服务端
  • 分类
    • observer:观察者的协处理器,类似于MySQL中的触发器,类似于Java中监听
      • 实现监听某个动作A,当 A这个工作发生,就可以让HBASE执行动作B
      • 实现二级索引的同步
        • 只要往原表中插入一条rowkey:时间_用户id
        • Hbase自动往索引表插入一条rowkey:用户id_时间
      • endpoint:终端者的协处理器,类似于MySQL中的存储过程,类似于Java中方法
        • 一般用于分布式的聚合统计
    • 监听的分类
      • Master的操作
      • RegionServer的操作
      • Region的操作
        • Put
        • pre:在执行A之前,先执行B
        • post:在执行A之后,再执行B
        • Delete
        • Scan
        • ……
      • 监听WAL

2、应用

需求1:构建协处理器实现:当往proc1表中插入数据时,自动往proc2中插入一份相同的数据

  • 创建两张表
create 'proc1','info'
create 'proc2','info'
  • 将开发好的协处理器jar包上传到hdfs上
hdfs dfs -mkdir -p /coprocessor/jar
hdfs dfs -put /export/datas/coprocessor.jar /coprocessor/jar/
  • 添加协处理器到proc1中,用于监听proc1的操作
disable 'proc1'

alter 'proc1',METHOD => 'table_att','Coprocessor'=>'hdfs://node-01:8020/coprocessor/jar/coprocessor.jar|cn.hanjiaxiaozhi.hbase.coprocessor.MyProcessor|1001|'

enable 'proc1'

alter 'proc1':修改这张表
METHOD => 'table_att':为这张表添加一个属性
'Coprocessor'=>'hdfs://node-01:8020/coprocessor/jar/coprocessor.jar|cn.hanjiaxiaozhi.hbase.coprocessor.MyProcessor
添加一个协处理器,jar包位置以及调用类
|1001|':优先级,数字越小优先级越高
  • 如果添加协处理器报错:重启HBASE集群即可

  • 测试

put 'proc1','20191211_001','info:name','zhangsan'
scan 'proc1'
scan 'proc2'
  • 卸载协处理器
disable 'proc1'
alter 'proc1',METHOD=>'table_att_unset',NAME=>'coprocessor$1'
enable 'proc1'

需求2:构建协处理器实现:当往proc3原表中插入数据时,自动往索引表proc4中插入原表的rowkey

  • 创建两张表
create 'proc3','info'
create 'proc4','info'
  • 将开发好的协处理器jar包上传到hdfs上
hdfs dfs -mkdir -p /coprocessor/jar
hdfs dfs -put /export/datas/coprocessor.jar /coprocessor/jar/
  • 添加协处理器到proc3中,用于监听proc3的操作
disable 'proc3'
alter 'proc3',METHOD => 'table_att','Coprocessor'=>'hdfs://node-01:8020/coprocessor/jar/coprocessor.jar|cn.hanjiaxiaozhi.hbase.coprocessor.SyncCoprocessor|1001|'
enable 'proc3'
  • 测试
put 'proc3','20191211_001','info:name','zhangsan'
scan 'proc3'
scan 'proc4'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值