Hbase(三) hbase协处理器与二级索引】的更多相关文章

一.协处理器—Coprocessor 1. 起源Hbase 作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执 行求和.计数.排序等操作.比如,在旧版本的(<0.92)Hbase 中,统计数据表的总行数,需 要使用 Counter 方法,执行一次 MapReduce Job 才能得到.虽然 HBase 在数据存储层中集成了 MapReduce,能够有效用于数据表的分布式计算.然而在很多情况下,做一些简单的相 加或者聚合计算的时候, 如果直接将计算过程放置在 server 端…
一. 已知的问题和不足二.解决思路三.代码3.1 读取config文件内容3.2 封装SolrServer的获取方式3.3 编写提交数据到Solr的代码3.4 拦截HBase的Put和Delete操作信息四. 使用 一. 已知的问题和不足 在上一个版本中,实现了使用HBase的协处理器将HBase的二级索引同步到Solr中,但是仍旧有几个缺陷: 写入Solr的Collection是写死在代码里面,且是唯一的.如果我们有一张表的数据希望将不同的字段同步到Solr中该如何做呢? 目前所有配置相关信息…
一. 背景二. 什么是HBase的协处理器三. HBase协处理器同步数据到Solr四. 添加协处理器五. 测试六. 协处理器动态加载 一. 背景 在实际生产中,HBase往往不能满足多维度分析,我们能想到的办法就是通过创建HBase数据的二级索引来快速获取rowkey,从而得到想要的数据.目前比较流行的二级索引解决方案有Lily HBase Indexer,Phoenix自带的二级索引,华为Indexer,以及360的二级索引方案.上面的目前使用比较广泛的应该是Lily HBase Index…
HBase在0.92之后引入了coprocessors,提供了一系列的钩子,让我们能够轻易实现访问控制和二级索引的特性.下面简单介绍下两种coprocessors,第一种是Observers,它实际类似于触发器,第二种是Endpoint,它类似与存储过程.由于这里只用到了Observers,所以只介绍Observers,想要更详细的介绍请查阅(https://blogs.apache.org/hbase/entry/coprocessor_introduction).observers分为三种:…
HBase学习(四) 一.HBase的读写流程 画出架构 1.1 HBase读流程 Hbase读取数据的流程:1)是由客户端发起读取数据的请求,首先会与zookeeper建立连接2)从zookeeper中获取一个hbase:meta表位置信息,被哪一个regionserver所管理着     hbase:meta表:hbase的元数据表,在这个表中存储了自定义表相关的元数据,包括表名,表有哪些列簇,表有哪些reguion,每个region存储的位置,每个region被哪个regionserver…
Coprocessor简介 (1)实现目的 HBase无法轻易建立“二级索引”: 执行求和.计数.排序等操作比较困难,必须通过MapReduce/Spark实现,对于简单的统计或聚合计算时,可能会因为网络与IO开销大而带来性能问题. (2)灵感来源          灵感来源于Bigtable的协处理器,包含如下特性: 每个表服务器的任意子表都可以运行代码: 客户端能够直接访问数据表的行,多行读写会自动分片成多个并行的RPC调用. (3)提供接口 RegionObserver:提供客户端的数据操…
一.Hbase集成Phoneix 1.下载 在官网http://www.apache.org/dyn/closer.lua/phoenix/中选择提供的镜像站点中下载与安装的HBase版本对应的版本.本地使用的1.2.5,故下载的apache-phoenix-4.13.1-HBase-1.2-bin.tar.gz包. 2.上传并解压 tar -zxvf apache-phoenix-4.13.1-HBase-1.2-bin.tar.gzmv apache-phoenix-4.13.1-HBase…
给HBase添加一二级索引,HBase协处理器结合solr 代码如下 package com.hbase.coprocessor; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.NavigableMap; import java.util.UUID; import org.apache.hadoop.hbas…
二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性.RDBMS支持得比较好,NOSQL阵营也在摸索着符合自身特点的最佳解决方案. 这篇文章会以HBase做为对象来探讨如何基于Hbase构建二级索引与实现索引join.文末同时会列出目前已知的包括0.19.3版secondary index,?ITHbase, Facebook和官方Coprocessor方案的介绍. 理论目标 在HBase中实现二级索引与索引Join需要考虑三个目标: 1,高性能的范围检索. 2,数据的低冗余(…
一:问题由来 1.举例 有A列与B列,分别是年龄与姓名. 如果想通过年龄查询姓名. 正常的检索是通过rowkey进行检索. 根据年龄查询rowkey,然后根据rowkey进行查找姓名. 这样的效率不高,因为要两次scan. 2.建议有一张索引表. 二:HBase的二级索引 1.讲解 rowkey是uid+ts 11111_20161126111111: 这个rowkey方便查询某一uid的某一个时间段内的数据 问题: 查询某一时间段内所有用户的数据:按照时间 索引表 rowkey:ts+uid…