客户端API 高级特性
1/过滤器
2/计数器
3/协处理器
*允许用户将一部分运算,移动到数据的存放端
使用客户端API,配合筛选机制,例如,使用过滤器或限制列族的范围,都可以控制被返回到客户端的数据量。
如果可以更进一步优化会更好,例如,数据的处理流程直接放到服务器端执行,然后仅返回一个小的处理结果集。
这类似于一个小型的MapReduce框架,该框架将工作分发到整个集群。
协处理器 允许用户在region服务器上运行自己的代码,更准确地说是允许用户执行region级的操作,
并且可以使用与RDBMS中触发器(trigger)类似的功能。
在客户端,用户不用关心操作具体在哪里执行,HBase的分布式框架会帮助用户把这些工作变得透明。
协处理器可以动态加载
协处理器有两种:
1、Obeserver 类似于传统数据库的触发器,在某些事件发生时启用。主要在服务端启用
RegionObserver 拦截常见的增删改查操作
WALObserver
MasterObserver 拦截DDL
2、EndPoint 类似于传统数据库的存储过程,主要在client端工作
Coprocessor类
CoprocessorEnvironment类
CoprocessorHost类
协处理器的加载过程
1、静态加载 (修改hbase-site.xml文件)
2、动态加载 (使用shell或java代码实现)