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应该是一个很好的切入点.当一个看似简单 ...
随机推荐
- [强制]IDE使用UTF-8和LF
Java 程序开发常用的集成开发环境(IDE)有Eclipse和IntelliJ IDEA.Eclipse是免费开源的,很多早期程序员使用它的比较多.IntelliJ IDEA有社区版和企业版,社区版 ...
- 前端面试题归类-css的flex相关
Flex布局 常见父项的属性: ●flex-direction :设置主轴的方向 Row 默认值从左到右 row-reverse 从右到左 column 从上到下 column-reverse 从下到 ...
- 2020DevOps状态报告——变更管理
如果你的公司还没有走向平台化,现在仍然可以是很大的飞跃.您仍然可以通过解决公司的变更管理流程来加快软件交付.在本章中,我们将研究我们在公司内部所学的变更管理模式.我们将向您展示什么是有效的,什么是无效 ...
- JavaScript 内存详解 & 分析指南
前言 JavaScript 诞生于 1995 年,最初被设计用于网页内的表单验证. 这些年来 JavaScript 成长飞速,生态圈日益壮大,成为了最受程序员欢迎的开发语言之一.并且现在的 JavaS ...
- Spark学习进度10-DS&DF基础操作
有类型操作 flatMap 通过 flatMap 可以将一条数据转为一个数组, 后再展开这个数组放入 Dataset val ds1=Seq("hello spark"," ...
- LeetCode 二分查找模板 II
模板 #2: int binarySearch(vector<int>& nums, int target){ if(nums.size() == 0) return -1; in ...
- 机器学习1-sklearn&字典特征抽取
sklearn数据集 数据集API介绍 sklearn.datasets 加载获取流行数据集 datasets.load_*() 获取小规模数据集,数据包含在datasets里 datasets.fe ...
- 【Software Test】Basic Of ST
文章目录 Learning Objective Introduction Software Applications Before Software Testing What is testing? ...
- 浏览器performance工具介绍及内存问题表现与监控内存的几种方式
一.GC的目的 为了实现内存空间的良性循环,performance提供多种监控方式监控内存 分析内存相关信息 当代码出现问题的时候及时定位到出现问题的代码块, 提高执行效率. preforcemanc ...
- ctfhub技能树—RCE—命令注入
打开靶机 查看页面信息 输入127.0.0.1进行测试 构造payload 127.0.0.1&ls 查看文件内容信息 127.0.0.1 & cat 179852221619745. ...