自定义HBase的协处理器(Observer)

自定义一个Observer...

总共分五步:

1°、继承BaseMasterObserver 

案例(当在HBase中创建表的时候在日志中有相关输出):

 1 import java.io.IOException;
 2 
 3 import org.apache.hadoop.hbase.HRegionInfo;
 4 import org.apache.hadoop.hbase.HTableDescriptor;
 5 import org.apache.hadoop.hbase.coprocessor.BaseMasterObserver;
 6 import org.apache.hadoop.hbase.coprocessor.MasterCoprocessorEnvironment;
 7 import org.apache.hadoop.hbase.coprocessor.ObserverContext;
 8 import org.slf4j.Logger;
 9 import org.slf4j.LoggerFactory;
10 
11 public class MyCheckPrivilegeObserver extends BaseMasterObserver{
12     /*
13      * BaseMasterObserver是一个继承了MasterObserver接口的实现类.
14      * 这个地方用了一个设计模式:适配器模式
15      * MasterObserver这个接口中定义了N多方法,如果直接implements这个借口
16      * 就要在类文件中都实现这个类中所有的方法.所以这个地方设计了一个实现了MasterObserver接口
17      * 所有方法的BaseMasterObserver类.我们只需要再继承BaseMasterObserver就可以了.
18      * 
19      * MasterObserver中的方法几乎都是以pre 和 post 开头的.
20      */
21     private Logger logger = LoggerFactory.getLogger(MyCheckPrivilegeObserver.class);
22     
23     @Override
24     public void preCreateTable(
25             ObserverContext<MasterCoprocessorEnvironment> ctx,
26             HTableDescriptor desc, HRegionInfo[] regions) throws IOException {
27         logger.info("---------要创建表了.....are you ok ?-----------");
28     }
29 }

 

2°、打成jar 包,放到hbase 的lib 目录下

3°、修改hbase 的配置文件hbase-site.xml 文件 (hbase-site.xml中的配置就是覆盖hbase-defaul.xml中的配置)

4°、重启HBase 集群 (stop-hbase.shstart-hbase.sh)

5°、创建表,查看observer 执行情况

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值