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应该是一个很好的切入点.当一个看似简单 ...
随机推荐
- Java8的Optional:如何干掉空指针?
目录 Optional概述 Optional简单案例 Optional的主要方法 参考阅读 Optional概述 Optional 是个容器:它可以保存类型T的value,或者仅仅保存null.Opt ...
- 原来大数据 Hadoop 是这样存储数据的
HDFS概述 产生背景 随着数据量越来越大,在一个操作系统中存不下所有的数据.需要将这些数据分配到更多的操作系统中,带来的问题是多操作系统不方便管理和维护.需要一种系统来管理多台机器上的文件,这就是分 ...
- 解决FastJson循环引用的问题
temp 本来被循环引用,运行方法报错. 解决方法:对temp进行处理 SerializerFeature feature = SerializerFeature.DisableCircularRef ...
- wdcp的一个安全漏洞 2015 9 月
wdcp的一个安全漏洞,非常严重,请大家及时升级和检查 在九月份的时候,wdcp出了一个很严重的安全漏洞,当时也出了补丁更新,具体可看http://www.wdlinux.cn/bbs/thread- ...
- 地图开发笔记(一):百度地图介绍、使用和Qt内嵌地图Demo
前言 Qt在地图方面的研发. 百度地图 介绍 百度的地图分为多个开发,都是在线的(离线的需要自己提取,本篇解说在线地图). 百度地图JavaScript API支持HTTP和HTTPS, ...
- Unity 编辑器(移除missing)
移除 Missing(Mono Script) ` private static void FindMissingReferences() { GameObject[] pAllObjects = ( ...
- 【Redis3.0.x】发布订阅
Redis3.0.x 发布订阅 基本命令 SUBSCRIBE channel [channel...] 订阅给定的一个或多个频道 PSUBSCRIBE pattern [pattern...] 订阅符 ...
- LeetCode344 反转字符串
编写一个函数,其作用是将输入的字符串反转过来. 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a p ...
- Python作业---内置数据类型
实验2 内置数据类型 实验性质:验证性 一.实验目的 1.掌握内置函数.列表.切片.元组的基本操作: 2.掌握字典.集合和列表表达式的基本操作. 二.实验预备知识 1.掌握Python内置函数的基/本 ...
- 剑指offer-56数组中数字出现的次数
题目 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次.请写程序找出这两个只出现一次的数字.要求时间复杂度是O(n),空间复杂度是O(1). 输入:nums = [4,1,4,6] 输出 ...