博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hbase协处理的部署
阅读量:7237 次
发布时间:2019-06-29

本文共 1311 字,大约阅读时间需要 4 分钟。

hot3.png

1.hbaseCoprocessor的简介

      HBase是一个分布式的存储体系,数据按照RowKey分成不同的Region,再分配给RegionServer管理。但是RegionServer只承担了存储的功能,如果Region能拥有一部分的计算能力,从而实现一个HBase框架上的MapReduce,那HBase的操作性能将进一步提升。正是为了解决这一问题,HBase 0.92版本后推出了Coprocessor -- 协处理器,一个工作在Master/RegionServer中的框架,能运行用户的代码,从而灵活地完成分布式数据处理的任务。

      Coprocessor包含两个组件,一个是EndPoint(类似关系型数据库的存储过程),用以加快特定查询的响应,另一个就是Observer(类似关系型数据库的触发器)。Observer也分为几个类型,其中RegionObserver提供了一组表数据操作的钩子函数,覆盖了GetPutScanDelete等操作(通常有prepost两种情况,表示在操作发生之前或发生之后),我们可以通过重载这些钩子函数,利用RegionServer实现特定的数据处理需求。

2.Coprocessors提供了两种部署方式:

1.    全局部署。把jar包的路径加入HBASE_CLASSPATH并且修改hbase-site.xml,这样Observer会对每一个表都生效。

hbase.coprocessor.region.classes
 
org.apache.hadoop.hbase.coprocessor. BaseRegionObserver 

2.    单表部署。通过HBase Shell修改表结构,加入coprocessor信息。

a)      进入HBase Shelldisable你希望加载的表

b)     通过以下指令激活Observer

alter 'table_name', METHOD => 'table_att', 'coprocessor' => ' hdfs://master:9000/HbaseCoprocessor.jar | test.CoprocessorObserverTest |1001'

c)      coprocessor对应的格式以|分隔,依次为:

  •         jar包的HDFS路径

  •         Observer的主类

  •         优先级(一般不用改)

d)     新安装的coprocessor会自动生成名称:coprocessor + $ + 序号(可通过describe 'table_name'查看)

e)     因为一张表可能拥有多个coprocessor,卸载需要输入对应的coprocessor名称,比如:

alter 'table_name', METHOD => 'table_att_unset', NAME=> 'coprocessor$1'

注:创建协处理器时需要把必要的jar,copy完整。

转载于:https://my.oschina.net/u/2529303/blog/548693

你可能感兴趣的文章
我的友情链接
查看>>
对于IE6、IE7、Firefox兼容性的一些观点
查看>>
思科网络技术
查看>>
VS2010 生成Xml格式的注释文档
查看>>
【Linux】Linux操作系统期末复习笔记
查看>>
bat 编程语法
查看>>
shell模拟多线程,moreping(备份)
查看>>
常用命令
查看>>
公司建立DHCP服务器,但下面用户还是无法自动获取IP地址
查看>>
GDI+ 学习记录(13): 弧线 - Arc
查看>>
arping命令详解
查看>>
【Java每日一题】20170313
查看>>
Citrix StoreFront架构
查看>>
Atom 编辑器 PHP 调试配置
查看>>
我的友情链接
查看>>
java web程序 利用myeclipse软件打包部署
查看>>
在android.app.Application中定义全局变量
查看>>
Spring Boot 学习资料汇总
查看>>
地图相关资料汇总
查看>>
libvirt 错误提示及解决
查看>>