1、基础介绍
协处理器允许用户在region服务器上运行自己的代码,允许用户执行region级别的操作,并且可以使用与RDBMS中触发器(trigger)类似的功能。在客户端,用户不用关心操作具体在哪里执行,HBase的分布式框架会帮助用户把这些工作变得透明。协处理器框架提供了一些类,用户可以通过继承这些类来扩展自己的功能。比如通过hbase的协处理器我们可以实现二级索引(secondary indexing)、复杂过滤(complex filtering) 比如谓词下推(push down predicates)以及访问控制等功能。
主要分为两类:Observer和RDMBS的触发器很类似,在一些特定事件发生时被执行。这些事件包括用户产生的事件,也包括服务器内部产生的事件。目前hbase内置实现的Observer主要有以下几个:
(1)Observer
WALObserver:提供控制WAL的钩子函数;
MasterObserver:可以被用作管理或DDL类型的操作,这些是集群级的事件。(SQL语言共分为四大类:数据查询语言DQL:select关键字,数据操纵语言DML:insert、update、delete,数据定义语言DDL:create table/view/index/syn/cluster创建表索引视图等,数据控制语言DCL:grant授权rollback回滚commit提交。)
RegionObserver:用户可以用这种处理器处理数据修改事件,它们与标的region联系紧密;
BulkLoadObserver:进行BulkLoad的操作之前或之后会触发这个钩子函数;
RegionServerObserver:RegionServer上发生一些操作可以触发一些这个钩子函数,这个是regionserver级别的事件
EndpointObserver:每当用户调用endpoint之前或之后会触发这个钩子,主要是提供了一些回调方法
(2)Endpoint
endpoint和RDMBS的存储过程很类似,用户提供一些自定义代码,并在hbase服务器端执行,结果通过RPC返回给客户。比较常见的场景包括聚合操作(求和、计数等)。有了endpoint,我们就可以充分利用服务器的资源,进行一些计算,大大提升计算的效率、减少通讯开销。
参考链接:
本文参考
https://www.iteblog.com/archives/2508.html
使用协处理器统计hbase行数
https://blog.csdn.net/jameshadoop/article/details/42645551
协处理器基础知识讲解,基本概念、测试用例demo、协处理器的装载与卸载!!!!!
https://www.cnblogs.com/EnzoDin/p/9577561.html
协处理器实现二级索引demo