zoukankan      html  css  js  c++  java
  • 自定义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 执行情况

  • 相关阅读:
    Nginx学习总结(4)——负载均衡session会话保持方法
    Java往事之《Ibatis动态sql语句》
    Java往事之《百度UEditor插件配置图片上传问题》
    Java往事之《截取指定字符串中的某段字符》
    Java往事之《批量插入数据》
    Java笔试题之《流行的框架与新技术》
    Java笔试题之《ejb部分》
    Java笔试题之《软件工程与设计模式》
    Java笔试题之《XML部分》
    Java笔试题之《数据库部分》
  • 原文地址:https://www.cnblogs.com/DreamDrive/p/5583144.html
Copyright © 2011-2022 走看看