网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

HBASE二级索引

HBASE基于coprocessor实现二级索引

网站建设哪家好,找成都创新互联!专注于网页设计、网站建设、微信开发、微信小程序、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了可克达拉免费建站欢迎大家使用!

场景如下:存储UC_TWEETS表,ROWKEY设计:folderId_dayId_siteId_docId,导出有如下需求:根据campaignId导出,所以需要存储campaignId的索引表

实现步骤如下:

一, 代码实现如下:

public class HbaseCoprocessor extends BaseRegionObserver {

@Override

public void prePut(final ObserverContext e, final Put put, 

final WALEdit edit, final Durability durability) throws IOException {

Configuration configuration = HBaseConfiguration.create();

configuration.set("hbase.regionserver.lease.period", "900000");  

        configuration.set("hbase.rpc.timeout", "1800000");  

        configuration.set("hbase.client.scanner.timeout.period", "1800000");

        configuration.set("hbase.zookeeper.property.clientPort", "2181");  

        configuration.set("hbase.zookeeper.quorum", "DEV-HADOOP-01,DEV-HADOOP-02,DEV-HADOOP-03");  

        configuration.set("hbase.master", "DEV-HADOOP-01:60000");

        

        HTable table = new HTable(configuration, "UC_INDEX");

   List kv = put.get("f1".getBytes(), "campaignId".getBytes()); 

   Iterator kvItor = kv.iterator(); 

   while (kvItor.hasNext()) { 

   KeyValue tmp = (KeyValue)kvItor.next(); 

   String rowkey = new String(tmp.getRow());

   String value = new String(tmp.getValue());

   String newRowkey = value + "_" + rowkey;

   Put indexPut = new Put(newRowkey.getBytes()); 

   indexPut.add("f1".getBytes(), tmp.getQualifier(), tmp.getValue()); 

   table.put(indexPut); 

   } 

   table.close();

}

}

二, 把上面的HbaseCoprocessor类导出.选择Export -> Jar File,导出成ucTweet.jar文件

三, 把ucTweet.jar文件上传到HDFS,命令如下:./hadoop fs -put /data/server/ucTweet_index.jar /jars

四, 设置UC_TWEETS表的coprocessor属性,命令如下:alter 'UC_TWEETS',METHOD=>'table_att','coprocessor'=>'hdfs://192.168.9.110:9000/jars/ucTweet.jar|com.prime.dsc.inputservice.coprocessor.HbaseCoprocessor|1001|'

五, 把数据插入UC_TWEETS表,如果UC_INDEX表同样有数据,并且符合设计,则说明二级索引建立成功


本文名称:HBASE二级索引
本文URL:http://bjjierui.cn/article/gphedg.html

其他资讯