`

hbase二级索引Observer

 
阅读更多

使用必须是线性安全:

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二级索引

    HBase 二级索引 HBase 二级索引是指在 HBase 之上建立的一种二级索引机制,用于提高查询效率。根据华为公布的 HBase 二级索引实现方案,本方案主要参照了该方案,设计了 HBase 的二级索引机制。 知识点一:HBase ...

    奇虎360 HBASE 二级索引的设计与实践

    奇虎360 HBASE二级索引的设计与实践内容总结: 背景介绍: 在奇虎360的实际应用中,仅通过Rowkey(RK)进行索引存在一系列问题。例如,索引较为单一,无法满足多维度查询需求,例如字段或列的多维度查询。此外,...

    hbase二级索引

    二级索引在HBase中的应用,是为了弥补其一级索引(RowKey索引)的不足,它为非RowKey字段提供了快速访问的通道。 首先,我们需要理解HBase的一级索引。HBase的表数据是按照RowKey排序存储的,RowKey是唯一标识一条...

    360HBASE二级索引的设计与实践

    ### 360HBASE二级索引的设计与实践 #### 背景 在大数据处理领域,特别是面对海量数据(如千亿级别的数据量)时,高效的数据存储与快速查询成为了关键的技术挑战之一。HBase作为一种分布式、面向列的NoSQL数据库...

    CDH使用Solr实现HBase二级索引.docx

    CDH 使用 Solr 实现 HBase 二级索引 在大数据处理中,HBase 是一种流行的 NoSQL 数据库,用于存储大量的数据。然而,在查询和检索数据时,HBase 的性能可能不太理想。这是因为 HBase 是基于 Key-Value 的存储方式,...

    HBase二级索引实现方案

    本方案主要参照了华为公布的HBase二级索引实现方案。为每个DataTable创建一个与之对应的IndexTable,通过各种途径,保证IndexTable Region与DataTable Region一一对应,并且存储在同一个RegionServer上。

    Hbase二级索引与JOIN

    ### HBase二级索引与JOIN知识点详解 #### HBase简介 - **定义**: HBase是一种分布式、面向列的NoSQL数据库系统,它基于Google Bigtable论文实现。 - **底层架构**: HBase的数据存储依赖于Hadoop Distributed File ...

    hbase+solr创建二级索引完整操作

    ### hbase+solr创建二级索引完整操作 #### 一、概述 本文档详细介绍了如何利用HBase和Solr创建二级索引的过程。通过整合HBase与Solr的优势,可以构建高性能的数据存储与检索系统。HBase作为分布式列族数据库,能够...

    基于协处理器的HBase二级索引方法.pdf

    实验结果表明,这种基于协处理器的二级索引方法在查询性能上优于HBase内置的过滤查询,同时与基于ElasticSearch的二级索引相比,查询速度更快且空间开销更小。这意味着,这种二级索引方法在满足高效查询需求的同时,...

    基于phoenix的Hbase二级全文索引方法及系统.pdf

    "基于phoenix的Hbase二级全文索引方法及系统" 本文主要介绍了基于phoenix的Hbase二级全文索引方法及系统,旨在解决Hbase数据的全文检索问题。该方法包括两大步骤:一是对Hbase原始数据表建立二级全文索引表,并存储...

    hbase-solr-coprocessor:通过solr实现hbase二级索引,主要通过hbase的coprocessor的Observer实现

    测试代码,目的是借助solr实现hbase二级索引,以使hbase支持高效的多条件查询。主要通过hbase的coprocessor的Observer实现,通过coprocessor在记录插入hbase时向solr中创建索引。 项目核心为...

    hbase创建二级索引

    public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put&gt;{ private String tableName; private String columnFamily;...// 该列对应的索引表名字

    HBase分布式二级索引通用方案研究.pdf

    在这篇文章中,作者周伟、刘希、陈浩详细探讨了HBase分布式二级索引的通用方案,并研究了如何将SolrCloud作为一个分布式索引器引入到HBase数据库中,以提高数据检索效率。 关键词“分布式存储”指的是将数据分布在...

    基于协处理器的HBase分类二级索引设计.pdf

    本文将深入探讨如何利用协处理器(Coprocessor)机制在HBase中实现分类的二级索引设计,以提升查询效率并优化数据管理。 一、HBase与二级索引 HBase是建立在Hadoop之上的键值存储系统,它以行键、列族、列限定符和...

    hbase 2级索引

    基于Solr的HBase多条件查询原理很简单,将HBase表中涉及条件过滤的字段和rowkey在Solr中建立索引,通过Solr的多条件查询快速获得符合过滤条件的rowkey值,拿到这些rowkey之后在HBASE中通过指定rowkey进行查询。

    HBase二级索引 简易理解

    一、解决的问题 1、RowKey 例子 ...二、对于上面需求 简单解决方案(二级索引 相当于添加一层映射关系到 原RowKey) 增加新的Hbase表 RowKey:hive_table__date___date__hive_table (解释:hive_tabl

Global site tag (gtag.js) - Google Analytics