HBase - Coprocessor - 协处理器之观察者Observer(触发器)的介绍以及使用 | 那伊抹微笑

博文作者:那伊抹微笑

csdn 博客地址:http://blog.csdn.net/u012185296

itdog8 地址链接 : http://www.itdog8.com/thread-216-1-1.html

博文标题:HBase - Coprocessor
- 协处理器之观察者Observer(触发器)的介绍以及使用 | 那伊抹微笑

个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在

技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spark ... 云计算技术

转载声明:可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明,谢谢合作!

qq交流群:214293307  (期待与你一起学习,共同进步)

1 协处理器

协处理器分为 观察者 Observer 和 终端 Endpoint

1.1 观察者 Observer(类似传统数据库中的触发器 Trigger)

1.1.1 Coprocessor 下的接口

详细信息直接看接口上的注释吧!!!

1.1.2 Java API 的使用

继承对应的抽象类就行了,每个抽象类有不同的功能,见名知意,不解释 、、、

public class TestAddColumnBaseRegionObserver extends BaseRegionObserver{

@Override

public void prePut(ObserverContext<RegionCoprocessorEnvironment> e, Put put, WALEdit edit, Durability durability) throws IOException {

putUUIDColumnIfMissing(e, put, edit, durability);

}

private void putUUIDColumnIfMissing(ObserverContext<RegionCoprocessorEnvironment> e, Put put, WALEdit edit, Durability durability) {

try {

if(!put.has(Bytes.toBytes("cf1"), Bytes.toBytes("uuid"))) {

String uuid = MD5Util.encrypt(put.toString());

put.add(Bytes.toBytes("cf1"), Bytes.toBytes("uuid"), Bytes.toBytes(uuid));

}

} catch (Exception e1) {

e1.printStackTrace();

}

}

}

1.1.3 打成 itdog8-yting-hbase-coprocessor-observer-1.0.0.jar 并上传到 hdfs(hbase shell 方式加载 coprocessor 要用到)

bash-4.1$ hadoop fs -put /usr/yting/hbase/coprocessor/test/itdog8-yting-hbase-coprocessor-observer-1.0.0.jar /usr/itdog8/yting/hbase/coprocessor/test/

1.1.4 hbase shell 方式加载 Coprocessor

hbase(main):017:0> alter ‘itdog8:hbase_coprocessor_test_1‘, ‘coprocessor‘=>‘hdfs:///usr/yting/hbase/coprocessor/test/itdog8-yting-hbase-coprocessor-observer-1.0.0.jar|com.itdog8.study.cloud.hbase.coprocessor.observer.TestAddColumnBaseRegionObserver|1001|arg1=1,arg2=2‘

Updating all regions with the new schema...

0/1 regions updated.

1/1 regions updated.

Done.

0 row(s) in 2.1490 seconds

1.1.5 测试

hbase(main):025:0> scan ‘itdog8:hbase_coprocessor_test_1‘

ROW                                                 COLUMN+CELL

0 row(s) in 0.0130 seconds

hbase(main):026:0> put ‘itdog8:hbase_coprocessor_test_1‘, ‘row-zhagnsan‘, ‘cf1:name‘, ‘zhangsan‘

0 row(s) in 0.0120 seconds

hbase(main):027:0> scan ‘itdog8:hbase_coprocessor_test_1‘

ROW                                                 COLUMN+CELL

row-zhagnsan                                       column=cf1:name, timestamp=1438919899641, value=zhangsan

row-zhagnsan                                       column=cf1:uuid, timestamp=1438919899641, value=2a66e9ed97e9ded4c21d1ef555cfa69e

1 row(s) in 0.0110 seconds

hbase(main):028:0>

可以发现 HBase-Coprocessor-Observer(触发器)成功触发并执行了(还是叫触发器习惯点,也更容易理解)

我们put数据的时候,没有uuid的时候他put了uuid进去了

OK

1.1.6 hbase shell 方式卸载 Coprocessor

alter ‘itdog8:hbase_coprocessor_test_1‘, METHOD => ‘table_att_unset‘, NAME => ‘coprocessor$1‘

1.2 终端 Endpoint(类似传统数据库中的 存储过程)

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-25 04:13:02

HBase - Coprocessor - 协处理器之观察者Observer(触发器)的介绍以及使用 | 那伊抹微笑的相关文章

HBase - 计数器 - 计数器的介绍以及使用 | 那伊抹微笑

博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-215-1-1.html 博文标题:HBase - 计数器 - 计数器的介绍以及使用 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯.也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+Spa

HBase - Filter - 过滤器的介绍以及使用 | 那伊抹微笑

博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-214-1-1.html 博文标题:HBase - Filter - 过滤器的介绍以及使用 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯.也不是海角.而是我站在妳的面前.妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+Mahout+

HBase - MapReduce - 使用 MapReduce 批量操作 HBase 介绍 | 那伊抹微笑

博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-202-1-1.html 博文标题:HBase - MapReduce - 使用 MapReduce 批量操作 HBase 介绍 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+

HBase - MapReduce - HBase 作为输入源的示例 | 那伊抹微笑

博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-203-1-1.html 博文标题:HBase - MapReduce - HBase 作为输入源的示例 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+

HBase - MapReduce - HBase 作为输出源的示例 | 那伊抹微笑

博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-204-1-1.html 博文标题:HBase - MapReduce - HBase 作为输出源的示例 | 那伊抹微笑 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前,妳却感觉不到我的存在 技术方向:Flume+Kafka+Storm+Redis/Hbase+Hadoop+Hive+

Hbase的协处理器

1.起因(Why HBase  Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立"二级索引",难以执行求和.计数.排序等操作.比如,在旧版本的(<0.92)Hbase中,统计数据表的总行数,需要使用Counter方法,执行一次MapReduce Job才能得到.虽然HBase在数据存储层中集成了MapReduce,能够有效用于数据表的分布式计算.然而在很多情况下,做一些简单的相加或者聚合计算的时候,如果直接将计算过程放置在server端,能

hbase coprocessor 二级索引

Coprocessor方式二级索引 1. Coprocessor提供了一种机制可以让开发者直接在RegionServer上运行自定义代码来管理数据.通常我们使用get或者scan来从Hbase中获取数据,使用Filter过滤掉不需要的部分,最后在获得的数据上执行业务逻辑.但是当数据量非常大的时候,这样的方式就会在网络层面上遇到瓶颈.客户端也需要强大的计算能力和足够大的内存来处理这么多的数据,客户端的压力就会大大增加.但是如果使用Coprocessor,就可以将业务代码封装,并在RegionSer

Android 适配器(Adapter)、观察者(Observer) 模式

适配器(Adapter)详述:http://blog.csdn.net/jjwwmlp456/article/details/39893723 观察者(Observer)详述:http://blog.csdn.net/jjwwmlp456/article/details/39967021 AdapterView 体系 AdapterView中会使用Adapter Adapter 体系 BaseAdapter 实现了 SpinnerAdapter.ListAdapter 这样的形式,就是 适配器模

【设计模式】HeadFirst设计模式(二):观察者(Observer)模式

一.观察者模式定义 在观察者模式中,一个被观察者管理所有依赖于它的观察者对象,它定义了一个一对多的依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新. 主题(被观察者)通过一个共同的接口来更新观察者,观察者依赖于此主题. 二.观察者模式例子--气象监测系统 描述: 气象监测系统分为三个部分:气象站(获取实际气象数据的物理装置).WeatherData对象(追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看) 布告板分为三个:目前状况(显示Weath