自定义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,如需转载请自行联系原作者

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
搜索推荐 Java 分布式数据库
|
分布式计算 Java Hadoop
|
分布式数据库 Apache Hbase
|
分布式数据库 Hbase Go
hbase过滤器filter及自定义filter
hbase过滤器filter及自定义filter 1.filter源码实现: hbase的filter定义在protobuf中(filter.proto文件)。
1984 0
|
分布式数据库 Hbase 存储
hbase协处理器Coprocessor(简介)
一:介绍 把一部分计算也移动到数据的存放端;允许用户执行region级的操作;可以动态加载。 二:使用场景: 1、使用钩子来关联行修改操作来维护辅助索引,或维护一些数据间的引用完整性。
1785 0
|
算法 大数据 分布式数据库
storm自定义分组与Hbase预分区结合节省内存消耗
Hbas预分区   在系统中向hbase中插入数据时,常常通过设置region的预分区来防止大数据量插入的热点问题,提高数据插入的效率,同时可以减少当数据猛增时由于Region split带来的资源消耗。
1209 0
|
存储 分布式数据库 Hbase
Hbase协处理器coprocessor
对每个region进行处理,弥补了scan的时候有限的几个过滤器的不足 分为两种类型 observer 观察者相当于触发器 Endpoint终端相当于存储过程 下面的观察者实现查询之前替换掉行键为Jack的KeyValue import java.io.IOException; import java.util.List; import org.apache.hadoop.hba
2132 0
|
2月前
|
分布式计算 Java Hadoop
java使用hbase、hadoop报错举例
java使用hbase、hadoop报错举例
84 4
|
30天前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
65 4