网上能查到的hbase提高基于列的查询效率基本上是建立二级索引的方法,介绍另外一种方法,使用分布式索引技术elasticsearch来提高效率,
基本思路和二级索引差不多,都是通过对要查询的列建立索引,先根据建立的列索引查询到rowkey,再根据rowkey查询到需要的数据,步骤如下:
1. 安装elasticsearch,安装简单,网上查找安装方法
2.使用elasticsearch建立hbase的相关查询列的索引,值包括查询列与rowkey
3.使用ealsticsearch查询到列对应的rowkey值,再根据rowkey查询需要的信息
代码只包括第3步:
package hbase;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;