Hbase的Coprocessor应用(1)

本文介绍了HBase的Coprocessor特性,包括Observer和Endpoint两种模式。Observer模式类似数据库触发器,用于服务端,提供权限管理、优先级设置等功能;Endpoint模式类似存储过程,运行在客户端,支持计算操作如min、max等。Coprocessor能实现动态加载,增强HBase的功能。
摘要由CSDN通过智能技术生成

基础知识(转自网络):

hbase Coprocessor是很多人对hbase-0.92的重大期待之一。     现在hbasecoprocessor有两种完全不同的实现,分别是observer模式与endpoint模式,它们分别对应20002001两个issue。我们可以将observer模式看成数据库中的触发器,而endpoint可以看成是存储过程。

  关于coprocessor我们可以从类继承关系上看到,如下图所示:

  

Hbase的Coprocessor应用(1) - SNRY - SNRE的博客
共有三个 Observer 对象,即 MasterObserver RegionObserver WALObserver 。它们的工作原理类似于钩子函数,在真实的函数实现前加入 pre (),实现后加入 post ()方法,来实现对操作进行一些嵌入式的改变。
  • hbase coprocessor的实现分为observerendpoint,其中observer类似于触发器,主要在服务端工作,而endpoint类似于存储过程,主要在client端工作
  • observer可以实现权限管理、优先级设置、监控、ddl控制、二级索引等功能,而endpoint可以实现minmasavgsum等功能
  • coprocessor可以动态加载
具体应用:
最近几周一直在通过MasterObserver、RegionObserver做访问权限控制,经历不少的尝试、弯路,算是对其有了初步的使用的了解,总结如下:

1、新建类继承实现MasterObserver/RegionObserver接口(或继承BaseMasterObserver/BaseRegionObserver类)

2、复写一定的pre 、post方法来完成目的

3、导出jar包(可以通过Eclipse导出)

4、修改hbase/conf/hbase-env.sh 中的HBASE_CLASSPATH属性,添加3步中jar包位置。如:

export HBASE_CLASSPATH=/home/snre/hadoop-1.0.3/conf:/home/snre/hbaseclient.jar

5、修改hbase/conf/hbase-site.xml文件,添加

<property>
<name>hbase.coprocessor.master.classes</name> 
<value>rong.accesscontrol.MasterAC</value>
</property>

<property>
<name>hbase.coprocessor.user.region.classes</name> 
<value>rong.accesscontrol.RegionAC</value>
</property>

value项与包中类位置有关。
hbase.coprocessor.master.classes

对应与MasterObserver。
hbase.coprocessor.user.region.classes/hbase.coprocessor.region.classes

对应RegionObserver,有user的对-ROOT-,.META.不适用。

我在使用过程中,如果配置成hbase.coprocessor.region.classes属性,会出现很多错误:(1)无法bin/stop-hbase.sh停止Hmaster(2)报错:region is not online:-ROOT-, ,0  等。原因我想大概如: http://comments.gmane.org/gmane.comp.java.hadoop.hbase.user/26465 。但还没有找到解决办法!

6、启动即可

7、还有很多问题有待补充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值