HBase协处理器加载过程(1.2.x)
一、首先来看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)的更多相关文章
- HBase协处理器加载的三种方式
本文主要给大家罗列了HBase协处理器加载的三种方式:Shell加载(动态).Api加载(动态).配置文件加载(静态).其中静态加载方式需要重启HBase. 我们假设我们已经有一个现成的需要加载的协处 ...
- 工厂模式模拟Spring的bean加载过程
一.前言 在日常的开发过程,经常使用或碰到的设计模式有代理.工厂.单例.反射模式等等.下面就对工厂模式模拟spring的bean加载过程进行解析,如果对工厂模式不熟悉的,具体可以先去学习一下工厂 ...
- linux内核启动以及文件系统的加载过程
Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令,就进入 Linux 内核启动阶段.普通 Linux 内核的启动过程也可以分为两个阶段.本文以项目中使用的 lin ...
- Inside Flask - flask 扩展加载过程
Inside Flask - flask 扩展加载过程 flask 扩展(插件)通常是以 flask_<扩展名字> 为扩展的 python 包名,而使用时,可用 import flask. ...
- web.xml 的加载过程
初始化过程: 在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>. 接着容器会创建一个Serv ...
- Browser默认书签加载过程
Browser配置默认书签——string.xml中<string-array name="bookmarks" translatable="false" ...
- Android View的加载过程
大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体加载过程又是怎么的呢?这一节我们做一下分析. 首先追踪一下代码 ...
- 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)
前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程, ...
- Ogre中Mesh的加载过程详述
转自:http://blog.csdn.net/yanonsoftware/article/details/1031891 如果新开始写一个3D渲染引擎,Mesh应该是一个很好的切入点.当一个看似简单 ...
随机推荐
- 使用node+puppeteer+express搭建截图服务
使用node+puppeteer+express搭建截图服务 转载请注明出处https://www.cnblogs.com/funnyzpc/p/14222807.html 写在之前 一开始我们的需求 ...
- 痞子衡嵌入式:MCUBootUtility v3.0发布,开始支持LPC, Kinetis啦
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.4.0)发布过去2个半月了,这一次痞子衡为大家带来了全新版本v3.0.0,从这个版本开始,NXP-MCUBootUtil ...
- 任意文件下载漏洞的接口URL构造分析与讨论
文件下载接口的URL构造分析与讨论 某学院的文件下载接口 http://www.****.edu.cn/item/filedown.asp?id=76749&Ext=rar&fname ...
- Flutter 基础组件:按钮
前言 Material组件库中提供了多种按钮组件如RaisedButton.FlatButton.OutlineButton等,它们都是直接或间接对RawMaterialButton组件的包装定制,所 ...
- LeetCode876 链表的中间结点
给定一个带有头结点 head 的非空单链表,返回链表的中间结点. 如果有两个中间结点,则返回第二个中间结点. 示例 1: 输入:[1,2,3,4,5] 输出:此列表中的结点 3 (序列化形式:[3,4 ...
- 天梯赛练习 L3-016 二叉搜索树的结构 (30分)
题目分析: 用数型结构先建树,一边输入一边建立,根节点的下标为1,所以左孩子为root*2,右孩子为root*2+1,输入的时候可用cin输入字符串也可用scanf不会超时,判断是否在同一层可以判断两 ...
- [工作札记]02: .Net Winform控件TreeView最简递归绑定方法
前言:Treeview控件是我们在WinForm.WebForm开发中经常使用的控件,需要从数据库动态加载数据,然后递归绑定每一个节点:同样,递归的思路在其他程序中也经常运用,包括.Net MVC等. ...
- Python 日志打印之logging.getLogger源码分析
日志打印之logging.getLogger源码分析 By:授客 QQ:1033553122 #实践环境 WIN 10 Python 3.6.5 #函数说明 logging.getLogger(nam ...
- (十三)利用BASE_DIR来import模板
实际工程的组织架构一般是这样的: bin包下的bin.py是实际的执行文件,my_mould包下的是业务逻辑的实现模板 bin.py需要import my_mould下的py文件,而bin和my_mo ...
- LeetCode700. 二叉搜索树中的搜索
题目 简单递归 1 class Solution { 2 public: 3 TreeNode* searchBST(TreeNode* root, int val) { 4 if(!root) re ...