使用必须是线性安全:
package coprocessor; import java.io.IOException; import org.apache.hadoop.hbase.CoprocessorEnvironment; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.HTablePool; import org.apache.hadoop.hbase.client.Put; import org.apache.hadoop.hbase.coprocessor.BaseRegionObserver; import org.apache.hadoop.hbase.coprocessor.ObserverContext; import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.regionserver.wal.WALEdit; import org.apache.hadoop.hbase.util.Bytes; public class AISObserver extends BaseRegionObserver { private HTablePool pool = null; HTableInterface table1 = null; private final byte[] tablename = Bytes.toBytes("zchx_ais_index"); private final byte[] family = Bytes.toBytes("info"); private final byte[] q = Bytes.toBytes("index"); public void start(CoprocessorEnvironment env) throws IOException { // this.ShipAtable_index = new HTable(env.getConfiguration(), "zchx_ais_index"); pool = new HTablePool(env.getConfiguration(), 10); table1 = pool.getTable(tablename); table1.setAutoFlush(false); } @Override public void prePut(ObserverContext<RegionCoprocessorEnvironment> e, Put put, WALEdit edit, boolean writeToWAL) throws IOException { byte[] row = put.getRow(); String rowkey = Bytes.toString(row); if(rowkey.length()==24){ StringBuilder sb = new StringBuilder(); sb.append(rowkey.substring(10, 24)); String type = rowkey.substring(9,10); sb.append(rowkey.substring(0, 9)); Put secPut = new Put(Bytes.toBytes(sb.toString())); secPut.add(family,q,row); if(type.equals("a")){ table1.put(secPut); } // this.table.flushCommits(); sb = null; } } @Override public void stop(CoprocessorEnvironment env) throws IOException { pool.close(); } }
相关推荐
本方案主要参照了华为公布的HBase二级索引实现方案。基于hadoop平台,设计了Hbase的二级索引机制。
奇虎360 HBASE 二级索引的设计与实践 pdf 完整版
Indexer 索引和搜索不会影响 HBase 运行的稳定性和 HBase 数据写入的吞吐量,因为索引和 搜索过程是完全分开并且异步的。Lily HBase Indexer 在 CDH5 中运行必须依赖 HBase、 SolrCloud 和 Zookeeper 服务。
奇虎360 HBASE 二级索引的设计与实践 pdf 完整版,支持千亿级数据量
该索引方案是一种较好的实现方式,而且是现有很少的hbase索引实现方法
本方案主要参照了华为公布的HBase二级索引实现方案。为每个DataTable创建一个与之对应的IndexTable,通过各种途径,保证IndexTable Region与DataTable Region一一对应,并且存储在同一个RegionServer上。
HBASE二级索引的设计与实践.ppt
该文档主要用于创建在solr中创建hbase的二级索引的教程,新建solr的分片,以及后续修改和新建配置文件等,仅供参考
基于协处理器的HBase二级索引方法.pdf
测试代码,目的是借助solr实现hbase二级索引,以使hbase支持高效的多条件查询。主要通过hbase的coprocessor的Observer实现,通过coprocessor在记录插入hbase时向solr中创建索引。 项目核心为...
基于索引列聚集的HBase二级索引设计,张祎,双锴,HBase作为Apache开源的列式存储数据库,在一定程度上解决了海量数据存储的问题,并提供了高效的数据读写性能。但是由于HBase缺乏二级��
public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put>{ private String tableName; private String columnFamily;...// 该列对应的索引表名字
淘宝选择HBASE的原因及应用举例,适合初学者
楼主实操的步骤整理的,只需要将Zookeeper的ip换成自己集群的就可以一步步地跟着文档实现,感兴趣的同学可以看看。
基于Solr的HBase多条件查询原理很简单,将HBase表中涉及条件过滤的字段和rowkey在Solr中建立索引,通过Solr的多条件查询快速获得符合过滤条件的rowkey值,拿到这些rowkey之后在HBASE中通过指定rowkey进行查询。
一、解决的问题 1、RowKey 例子 ...二、对于上面需求 简单解决方案(二级索引 相当于添加一层映射关系到 原RowKey) 增加新的Hbase表 RowKey:hive_table__date___date__hive_table (解释:hive_tabl
基于phoenix的Hbase二级全文索引方法及系统.pdf
hbaseSecondaryIndex是一个hbase二级索引的实现,基于solr+hbase coprocessor框架为hbase提供索引表支持。 此工程可打包为一个hbase的插件,通用方便。 这篇文档的目的是为了向您介绍hbaseSecondaryIndex的基本使用...
基于协处理器的HBase分类二级索引设计.pdf