Hbase学习(七)- 协处理器

本文详细介绍了Hbase的协处理器,包括起源、Observer和Endpoint两种类型,以及它们在Hbase中的作用。此外,还阐述了协处理器的加载方式,如静态加载和动态加载,并通过一个ObserverCoprocessor案例展示了二级索引的实现步骤。
摘要由CSDN通过智能技术生成

Hbase 高级编程

目录:

1、协处理器—Coprocessor

2、协处理加载方式

3、二级索引(ObserverCoprocessor 案例)


Hbase 高级编程

1、协处理器—Coprocessor

1.1 、起源

Hbase 作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(<0.92)Hbase 中,统计数据表的总行数,需要使用 Counter 方法,执行一次 MapReduce Job 才能得到。虽然 HBase 在数据存储层中集成了 MapReduce,能够有效用于数据表的分布式计算。然而在很多情况下,做一些简单的相加或者聚合计算的时候,如果直接将计算过程放置在 server 端,能够减少通讯开销,从而获得很好的性能提升。于是,HBase 在 0.92 之后引入了协处理器(coprocessors),实现一些激动人心的新特性:能够轻易建立二次索引、复杂过滤器(谓词下推)以及访问控制等。

1.2 、介绍

协处理器有两种:observer 和 endpoint

Observer 类似于传统数据库中的触发器,当发生某些事件的时候这类协处理器会被Server 端调用。Observer Coprocessor 就是一些散布在 HBase Server 端代码中的 hook 钩子,在固定的事件发生时被调用。比如:put 操作之前有钩子函数 prePut,该函数在 put 操作执行前会被 Region Server 调用;在 put 操作之后则有 postPut 钩子函数

以 HBase0.92 版本为例,它提供了三种观察者接口:

RegionObserver:提供客户端的数据操纵事件钩子:Get、Put、Delete、Scan 等。

WALObserver:提供 WAL 相关操作钩子。

MasterObserver:提供 DDL-类型的操作钩子。如创建、删除、修改数据表等。

到 0.96 版本又新增一个 RegionServerObserver

下图是以 RegionObserver 为例子讲解 Observer 这种协处理器的原理:


1、客户端发出 put 请求

2、该请求被分派给合适的 RegionServer 和 region

3、coprocessorHost 拦截该请求,然后在该表上登记的每个 RegionObserver 上调用 prePut()

4、如果没有被 prePut()拦截,该请求继续送到 region,然后进行处理</

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值