一、服务端
1、安装Protobuf
2、RPC proto 定义
文件:Examples.proto
option java_package = "org.apache.hadoop.hbase.coprocessor.example.generated";
option java_outer_classname = "ExampleProtos";
option java_generic_services = true;
option java_generate_equals_and_hash = true;
option optimize_for = SPEED;

message CountRequest {
}

message CountResponse {
required int64 count = 1 [default = 0];
}

service RowCountService {
rpc getRowCount(CountRequest)
returns (CountResponse);
rpc getKeyValueCount(CountRequest)
returns (CountResponse);
}
文件存放在工程的 src/main/protobuf 目录下

3、生成java代码
D:\workspace\myBase\src\main\protobuf>protoc --java_out=D:\workspace\myBase\src\main\java Examples.proto

4、pom.xml增加依赖
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>

5、实现 Server 端代码
Coprocessor 接口定义了两个接口函数,start 和 stop。
协处理器在 Region 打开的时候被 RegionServer 自动加载,并会调用器 start 接口,完成初始化工作。

start 接口
stop 接口
getService 接口

6、函数定义

二、实现 Client 端代码
HBase 提供了客户端 Java 包 org.apache.hadoop.hbase.client.coprocessor。它提供以下三种方法来调用协处理器提供的服务:
Table.coprocessorService(byte[])
Table.coprocessorService(Class, byte[], byte[],Batch.Call),
Table.coprocessorService(Class, byte[], byte[], Batch.Call, Batch.Callback)

一般情况下,使用 Endpoint 协处理器的频率不会太高。HBase 是一个存储数据的系统,最常用的应该是 get 和 put,如果频繁使用协处理器,也许说明您应该考虑其他的数据库系统。

最新文章

  1. 循序渐进做项目系列(5):制作安装包,谁人都可以!——VS制作安装包简明教程
  2. Unbroken(坚不可摧)——Mateusz M
  3. Eclipse安装ZooKeeper插件
  4. iOS-三方框架AFNetworking基本使用
  5. 模板题 codevs 1993 草地排水 想学习的请看链接
  6. 【001:Tomcat搭建简单文件服务器】
  7. 借助阿里AntUI元素实现两个Web页面之间的过渡——“Loading…”
  8. 简单分组背包ACboy needs your help(hdu1712)
  9. UI2_UICollectionViewPicture
  10. UVa 11997 (优先队列 多路归并) K Smallest Sums
  11. MySQL、SQLServer2000(及SQLServer2005)和ORCALE三种数据库实现分页查询的方法
  12. DIY 温控烙铁
  13. Spring动态切换多数据源解决方案
  14. HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接(转)
  15. AndroidStudio制作“我”的界面,设置,修改密码,设置密保和找回密码
  16. 使用Qss设置QT程序界面的样式和皮肤
  17. php导出csv
  18. windows 下安装composer
  19. c++刷题(33/100)笔试题1
  20. win10下的iis的配置(服务于asp.net)

热门文章

  1. 数据获取以及处理Beta版本展示
  2. [Beta] postmortem
  3. NHibernate使用Access数据库的配置问题
  4. 另类vs2015+xamarin 的android界面乱码 解决
  5. 嵌入式系统添加无线wifi模块
  6. javascript 键盘输入过滤,只能输入数字,小数一位且只能输入5
  7. SQLServer 自增主键创建, 指定自增主键列值插入数据,插入主键
  8. LeetCode----Linked List
  9. OpenResty 是一个全功能的 Web 应用服务器
  10. C#程序以管理员身份运行