一、首先来看ObserverCoprocessor:
1.观察者协处理器的静态加载的配置是在hbase-site.xml中配置如下属性:
通过hbase.coprocessor.region.classes 配置 RegionObservers 和 Endpoints.
通过hbase.coprocessor.wal.classes 配置 WALObservers.
通过hbase.coprocessor.master.classes 配置MasterObservers.

hbase.coprocessor.region.classes:会被加载到默认所有表上。
hbase.coprocessor.master.classes:由HMaster进程加载。

对应的java类分别是:HMaster、HRegion、FSHLog
2.HMaster
HMaster中有一个属性叫MasterCoprocessorHost cpHost;
而关于MasterCoprocessorHost类的描述:
为面向主机的操作提供协处理器框架和环境。@link
HMaster通过这个类与加载的协处理器进行交互。
BaseMasterObserver实现MasterObserver,我们自定义的Observer协处理器实现BaseMasterObserver。而这个类中有MasterObserver中所有的方法,并且最终调用对应的方法。
比如:
 
创建表时,会在CreateTableHandler类中的调用:
 
3.HRegion
同样也有一个属性叫private RegionCoprocessorHost coprocessorHost;
RegionCoprocessorHost类的描述信息:
实现在@link区域内加载的coprocessor环境和运行时支持。
在各方法中调用:
 
HRegion中调用钩子函数:
 


3.
FSHLog
FSHLog中的属性为:WALCoprocessorHost,这个类作用同上边两个一样。
调用例子
FSHLog类中的append方法调用协处理器的钩子函数:
 


二、EndPoint协处理器

动态RPC端点类似于存储过程。终端可以随时从客户机调用。调用时,会在目标区域或区域远程执行,并将执行结果返回给客户端。
Endpoint协处理器—动态rpc协议,直接在region进行计算,编写客户端代码调用服务,即将结果返回到客户端(Reponse)。

HBase协处理器加载过程(1.2.x)的更多相关文章

  1. HBase协处理器加载的三种方式

    本文主要给大家罗列了HBase协处理器加载的三种方式:Shell加载(动态).Api加载(动态).配置文件加载(静态).其中静态加载方式需要重启HBase. 我们假设我们已经有一个现成的需要加载的协处 ...

  2. 工厂模式模拟Spring的bean加载过程

    一.前言    在日常的开发过程,经常使用或碰到的设计模式有代理.工厂.单例.反射模式等等.下面就对工厂模式模拟spring的bean加载过程进行解析,如果对工厂模式不熟悉的,具体可以先去学习一下工厂 ...

  3. linux内核启动以及文件系统的加载过程

    Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令,就进入 Linux 内核启动阶段.普通 Linux 内核的启动过程也可以分为两个阶段.本文以项目中使用的 lin ...

  4. Inside Flask - flask 扩展加载过程

    Inside Flask - flask 扩展加载过程 flask 扩展(插件)通常是以 flask_<扩展名字> 为扩展的 python 包名,而使用时,可用 import flask. ...

  5. web.xml 的加载过程

    初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...

  6. Browser默认书签加载过程

    Browser配置默认书签——string.xml中<string-array name="bookmarks" translatable="false" ...

  7. Android View的加载过程

    大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体加载过程又是怎么的呢?这一节我们做一下分析. 首先追踪一下代码 ...

  8. 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

    前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程, ...

  9. Ogre中Mesh的加载过程详述

    转自:http://blog.csdn.net/yanonsoftware/article/details/1031891 如果新开始写一个3D渲染引擎,Mesh应该是一个很好的切入点.当一个看似简单 ...

随机推荐

  1. POLARDB与其他关系型数据库对比

    https://baijiahao.baidu.com/s?id=1610828839695075926&wfr=spider&for=pc 前言 在数据库的选择上,MySQL成为中国 ...

  2. C# 9 新特性 —— 增强的模式匹配

    C# 9 新特性 -- 增强的模式匹配 Intro C# 9 中进一步增强了模式匹配的用法,使得模式匹配更为强大,我们一起来了解一下吧 Sample C# 9 中增强了模式匹配的用法,增加了 and/ ...

  3. Yaml spring boot 二维数组写法

    Yaml channel: info: - channel-ip: 192.168.1.40 channel-no: 5182001001 - channel-ip: 192.168.1.10 cha ...

  4. CentOs 7 安装mysql5.7.18(二进制版本)

    1.下载二进制版本安装包.搜狐开源镜像站:http://mirrors.sohu.com/mysql/MySQL-5.7/   , 找 mysql-5.7.18-linux-glibc2.5-x86_ ...

  5. 轻量级 Kubernetes K3s - Github热点

    轻量级 Kubernetes k3s star: 15.5k K3s是完全符合生产要求的Kubernetes发行版, 安装简单,可用于生产,整个二进制文件小于100M,作为单一文件打包部署,优势在于, ...

  6. spark-streaming-连接kafka的两种方式

    推荐系统的在线部分往往使用spark-streaming实现,这是一个很重要的环节. 在线流程的实时数据一般是从kafka获取消息到spark streaming spark连接kafka两种方式在面 ...

  7. 如何在 Vite 中使用 Element UI + Vue 3

    在上篇文章<2021新年 Vue3.0 + Element UI 尝鲜小记>里,我们尝试使用了 Vue CLI 创建 Vue 3 + Element UI 的项目,而 Vue CLI 实际 ...

  8. MySQL select 语句指定字段查询

    指定字段查询 SELECT 语法 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as al ...

  9. 使用 C# 9 的records作为强类型ID - JSON序列化

    在本系列的上一篇文章中,我们注意到强类型ID的实体,序列化为 JSON 的时候报错了,就像这样: { "id": { "value": 1 }, "n ...

  10. alter column和modify column

    5.6中,发现其实alter column 和更改modify column 步骤是一样的 mysql> create table xs(name varchar(12),age int def ...