HBase-6.hbase 协处理器

2023-11-29 04:08
文章标签 hbase 协处理器

本文主要是介绍HBase-6.hbase 协处理器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


引入Hbase中的Coprocessor的原因
HBase作为列族数据库无法建立“二级索引”,难以执行求和、计数、排序等操作。为解决这些问题,HBase0.92 之后引入协处理器(Coprocessor),实现一些新特性,能够轻易建立二次索引、复杂过滤器、以及访问控制。


参考: http://blog.csdn.net/lifuxiangcaohui/article/details/39991183
协处理器两个插件

(1)观察者(observer)

提供三种观察者接口:
RegionObserver:提供客户端的数据操纵事件钩子:Get、Put、Delete、Scan等。
WALObserver:提供WAL相关操作钩子。
MasterObserver:提供DDL-类型的操作钩子。如创建、删除、修改数据表等。


 
(2)终端(endpoint)

EndPoint协处理器
(1)ObServer协处理器:允许集群在正常的客户端操作过程中可以有不同的行表现!
(2)EndPoint协处理器:允许你扩展集群能力,对客户端应用开放新的运行命令,在RegionServer上执行

HBase的协处理器(coprocessor)统计函数
(1)在使用HBase的协处理器(coprocessor)之前,需要启动协处理器,有两种方案。
方案1:启动全局aggregation,能过操纵所有的表上的数据。通过修改hbase-site.xml这个文件来实现
<property>
<name>hbase.coprocessor.user.region.classes</name>
<value>org.apache.hadoop.hbase.coprocessor.AggregateImplementation</value>
</property>


方案2:启用表aggregation,只对特定的表生效。通过HBase Shell 来实现
create 'stu', {NAME => 'info', VERSIONS => 5}
1、disable指定表。
hbase> disable 'stu'
2、添加aggregation 
hbase>alter 'stu', METHOD => 'table_att','coprocessor'=>'|org.apache.hadoop.hbase.coprocessor.AggregateImplementation||'
3、重启指定表 
hbase> enable 'stu'


(2) JAVA代码统计表中列族的行数

public class MyAggregationClient {


public static void main(String[] args) throws Throwable {
Configuration customConf = new Configuration();
customConf.set("hbase.rootdir", "hdfs://mycluster:8020/hbase");
customConf.setStrings("hbase.zookeeper.quorum", "mycluster:2181");
// 提高RPC通信时长
customConf.setLong("hbase.rpc.timeout", 600000);
// 设置Scan缓存
customConf.setLong("hbase.client.scanner.caching", 1000);
// 默认为9000毫秒
customConf.set("zookeeper.session.timeout", "180000");
Configuration configuration = HBaseConfiguration.create(customConf);
AggregationClient aggregationClient = new AggregationClient(configuration);
Scan scan = new Scan();
// 指定扫描列族,唯一值
scan.addFamily(Bytes.toBytes("info"));
long rowCount = aggregationClient.rowCount(TableName.valueOf("stu"),new LongColumnInterpreter(), scan);
System.out.println("row count is " + rowCount);
}
}


HBase的协处理器案例
  协处理器其中的一个作用是使用Observer创建二级索引,一般来说,对数据库建立索引,往往需要单独的数据结构来存储索引的数据。在为hbase建立索引时,可以另外建立一张索引表,查询时先查询索引表,然后用查询结果查询数据表.。
 

所以为了解决这个问题,hbase项目应运而生,它的主要思想是在region级别建立索引而不是在表级别。
参考: http://www.oschina.net/question/12_32573


这篇关于HBase-6.hbase 协处理器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431383

相关文章

Hive和Hbase的区别

Hive 和 HBase 都是 Hadoop 生态系统中的重要组件,它们都能处理大规模数据,但各自有不同的适用场景和设计理念。以下是两者的主要区别: 1. 数据模型 Hive:Hive 类似于传统的关系型数据库 (RDBMS),以表格形式存储数据。它使用 SQL-like 语言 HiveQL 来查询和处理数据,数据通常是结构化或半结构化的。HBase:HBase 是一个 NoSQL 数据库,基

简单Hbase 分页方案

简单Hbase分页方案 网上大多数分页方案分为从服务端分页或者从客户端分页 服务端分页方式主要利用PageFilter过滤器,首先太复杂,其次针对集群的兼容性不是很好,作者利用服务端分页+客户端分页结合方式给出一种简单易行的中间方案。 1.利用PageFilter过滤器从服务端分页,过滤出所需要的最大条数, 注:作者认为大多数用户不会进行太深的翻页,假设pageSize=5,客户饭100页一共

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

Hbase 查询相关用法

Hbase 查询相关用法 public static void main(String[] args) throws IOException {//Scan类常用方法说明//指定需要的family或column ,如果没有调用任何addFamily或Column,会返回所有的columns; // scan.addFamily(); // scan.addColumn();// scan.se

【Hbase 数据操作】HBase基础和数据导入

创建表hbase_test有两个列族CF1和CF2 向表中添加数据,在向HBase的表中添加数据的时候,只能一列一列的添加,不能同时添加多列。 create 'hbase_test',{NAME=>'cf1'},{NAME=>'cf2'}put 'hbase_test', '001','cf1:name','liz';put 'hbase_test', '001','cf1:age','1

【Hive Hbase】Hbase与Hive的区别与联系

问题导读: Hive与Hbase的底层存储是什么? hive是产生的原因是什么? habase是为了弥补hadoop的什么缺陷? 共同点: 1.hbase与hive都是架构在hadoop之上的。都是用hadoop作为底层存储 区别: 2.Hive是建立在Hadoop之上为了减少MapReduce jobs编写工作的批处理系统,HBase是为了支持弥补Hadoop对实时操作的缺陷的项目

HBase实践 | 数据人看Feed流-架构实践

背景 Feed流:可以理解为信息流,解决的是信息生产者与信息消费者之间的信息传递问题。我们常见的Feed流场景有: 手淘,微淘提供给消费者的首页商品信息,用户关注店铺的新消息等微信朋友圈,及时获取朋友分享的信息微博,粉丝获取关注明星、大V的信息头条,用户获取系统推荐的新闻、评论、八卦 关于Feed流的架构设计,包括以上场景中的很多业内专家给出了相应的思考、设计和实践。本人是大数据方向出身的技术人

HBase实践 | HBase TB级数据规模不停机迁移最佳实践

背景 有关HBase集群如何做不停服的数据迁移一直都是云HBase被问的比较多的一个问题,目前有许多开源的工具或者HBase本身集成的方案在性能、稳定性、使用体验上都不是很好,因此阿里云提供了BDS迁移服务,可以帮助云上客户实现TB级数据规模不停机迁移 支持场景 HBase大版本升级, 1.x升级2.x集群配置升级,8核16G升级为16核32G集群网络环境变更,经典网络迁移到VPC异地跨机房迁

HBase抗战总结 | 阿里巴巴HBase高可用8年抗战回忆录

前言 2011年毕玄和竹庄两位大神将HBase引入阿里技术体系,2014年接力棒转到东8区第一位HBase commiter天梧手中,多年来与淘宝、旺旺、菜鸟、支付宝、高德、大文娱、阿里妈妈等几乎全BU合作伙伴携手共进,支撑了双十一大屏、支付宝账单、支付宝风控、物流详情等核心业务。2018年双十一,HBase全天处理请求2.4万亿行,单集群吞吐达到千万级别。从一个婴儿成长为青年,阿里HBase

快手HBase在千亿级用户特征数据分析中的应用与实践

声明:本文的原文是来自Hbase技术社区的一个PPT分享,个人做了整理和提炼。大家注意哈,这种会议PPT类的东西能学习到的更多的是技术方案和他人在实践过程中的经验。希望对大家有帮助。 背景 快手每天产生数百亿用户特征数据,分析师需要在跨30-90天的数千亿特征数据中,任意选择多维度组合(如:城市=北京&性别=男),秒级分析用户行为。针对这一需求, 快手基于HBase自主研发了支持bitmap转