设为首页 加入收藏

TOP

Hbase之协处理器
2019-02-12 01:46:18 】 浏览:49
Tags:Hbase 处理器

官方介绍https://blogs.apache.org/hbase/entry/coprocessor_introduction

使用它一定要慎重,一旦协处理器出问题,则hbase将起不来,不过也有配置进行修复,修复配置见最后

协处理器简介

可理解为服务端的拦截器,可根据需求确定拦截点,再重写这些拦截点对应的方法
客户端的读取API配合筛选机制可控制返回的数据量
进一步优化,例,数据的处理流程直接放到服务器端执行,然后仅返回一个小的处理结果集。类似于一个小型的MapReduce 框架,该框架将工作分发到整个集群

协处理器允许
在region服务器上运行自己的代码,更准确地说是允许用户执行region级的操作,并且可以使用与RDBMS中触发器(trigger)类似的功能

在旧版(0.92HBase版本之前)的HBase中是没有引入协处理器的概念的。这样存在的问题是:创建二级索引较难,很难进行简单的排序、求和、计数等操作。这里是指在该版本限制下难以进行上述操作,不是不行。为了降低难度,提出了协处理器的概念。

索引的概念:

i)明确是针对数据库而言的,体现是一张表或者一种数据结构,一列或者多列,目的是用来快速访问数据库中的信息。包含的内容是:键的属性值和存储文件位置信息的指针。

ii)主索引:

主索引是包含两个定长字段的有序文件。字段1:主键;字段2:磁盘块的指针。 这两个字段的值是索引项的值。

ii)二级索引

二级索引的概念:
“二级索引也是有两个字段的有序文件:
第一个字段是索引字段,有相同的数据类型,并且是数据文件中的非排序字段,

第二个字段可以是一个块指针也可以是记录指针。二级索引(也称为非聚簇索引)用于在二级键上搜索文件,二级索引的搜索键指定了一个顺序,这个顺序与文件的排序顺序不同。”

协处理器框架提供了两大类Observer、endPoint

通过继承这两大类来扩展自己的功能。

1)Observer(观察者)

该类是与RDMS中的触发器类似。回调函数在一些特定的事件发生时被调用。

事件包括:用户产生的事件或者服务端内部产生的事件。

协处理器框架提供的接口如下:

a、RegionObserver:用户可以通过这种处理器来处理数据修改事件,它们与表的Region紧密关联。region级的操作。对应的操作是:put/delete/scan/get

b、MasterObserver:可以用作管理或DDL类型的操作,是集群级的操作。对应的操作是:创建、删除、修改表。

c、WALObserver:提供控制WAL的钩子函数。

Observer定义好钩子函数,服务端可以调用。

2)endPoint

该类的功能类似RDMS中的存储过程。将用户的自定义操作添加到服务器端,endPoint可以通过添加远程过程调用来扩展RPC协议。用户可以将自定义完成某项操作代码部署到服务器端。例如:服务器端的计算操作。

当二者结合使用可以决定服务器端的状态。

修改配置

在hbase-site.xml中配置

    <property>  
        <name>hbase.coprocessor.abortonerror</name>  
        <value>false</value>  
        <description>Set to true to cause the hosting server (master or  
            regionserver)  
            to abort if a coprocessor fails to load, fails to initialize, or throws  
            an  
            unexpected Throwable object. Setting this to false will allow the server to  
            continue execution but the system wide state of the coprocessor in  
            question  
            will become inconsistent as it will be properly executing in only a  
            subset  
            of servers, so this is most useful for debugging only.  
        </description>  
    </property>  

项目例子

见博客https://blog.csdn.net/student__software/article/details/81783181

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇HBase的物理模型 下一篇【HBase】HBase的eclipse开发环境..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目