自定义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 执行情况


本文转自SummerChill博客园博客,原文链接:http://www.cnblogs.com/DreamDrive/p/5583144.html,如需转载请自行联系原作者

相关文章
|
搜索推荐 Java 分布式数据库
|
分布式计算 Java Hadoop
|
分布式数据库 Apache Hbase
|
分布式数据库 Hbase Go
hbase过滤器filter及自定义filter
hbase过滤器filter及自定义filter 1.filter源码实现: hbase的filter定义在protobuf中(filter.proto文件)。
2082 0
|
分布式数据库 Hbase 存储
hbase协处理器Coprocessor(简介)
一:介绍 把一部分计算也移动到数据的存放端;允许用户执行region级的操作;可以动态加载。 二:使用场景: 1、使用钩子来关联行修改操作来维护辅助索引,或维护一些数据间的引用完整性。
1895 0
|
算法 大数据 分布式数据库
storm自定义分组与Hbase预分区结合节省内存消耗
Hbas预分区   在系统中向hbase中插入数据时,常常通过设置region的预分区来防止大数据量插入的热点问题,提高数据插入的效率,同时可以减少当数据猛增时由于Region split带来的资源消耗。
1270 0
|
存储 分布式数据库 Hbase
Hbase协处理器coprocessor
对每个region进行处理,弥补了scan的时候有限的几个过滤器的不足 分为两种类型 observer 观察者相当于触发器 Endpoint终端相当于存储过程 下面的观察者实现查询之前替换掉行键为Jack的KeyValue import java.io.IOException; import java.util.List; import org.apache.hadoop.hba
2174 0
|
11天前
|
分布式计算 Java Hadoop
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
51 6
|
5月前
|
分布式计算 Ubuntu Hadoop
Ubuntu22.04下搭建Hadoop3.3.6+Hbase2.5.6+Phoenix5.1.3开发环境的指南
呈上,这些步骤如诗如画,但有效且动人。仿佛一个画家在画布上描绘出一幅完美的画面,这就是你的开发环境。接下来,尽情去创造吧,祝编程愉快!
263 19