文档详情

hbase分页查询实现-.doc

发布:2017-12-18约7.13千字共7页下载文档
文本预览下载声明
hbase分页查询实现 Hbase本身是没有分页查询的,我在网上找了很多资料来实现一个分页功能,在这里做了一下记录,分享给大家,有什么不足之处,请尽管指出。废话不多说, 看代码。 import java.io.IOException; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import mons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Get; import org.apache.hadoop.hbase.client.HTableInterface; import org.apache.hadoop.hbase.client.HTablePool; import org.apache.hadoop.hbase.client.Result; import org.apache.hadoop.hbase.client.ResultScanner; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp; import org.apache.hadoop.hbase.filter.Filter; import org.apache.hadoop.hbase.filter.FilterList; import org.apache.hadoop.hbase.filter.FirstKeyOnlyFilter; import org.apache.hadoop.hbase.filter.SingleColumnValueFilter; import org.apache.hadoop.hbase.util.Bytes; public class HBaseUtils { private static Configuration config = null; private static HTablePool tp = null; static { // 加载集群配置 config = HBaseConfiguration.create(); config.set(hbase.zookeeper.quorum, xx.xx.xx); config.set(perty.clientPort, 2181); // 创建表池(可伟略提高查询性能,具体说明请百度或官方API) tp = new HTablePool(config, 10); } /* * 获取hbase的表 */ public static HTableInterface getTable(String tableName) { if (StringUtils.isEmpty(tableName)) return null; return tp.getTable(getBytes(tableName)); } /* 转换byte数组 */ public static byte[] getBytes(String str) { if (str == null) str = ; return Bytes.toBytes(str); } /** * 查询数据 * @param tableKey 表标识 * @param queryKey 查询标识 * @param startRow 开始行 * @param paramsMap 参数集合 * @return 结果集 */ public static TBData getDataMap(String tableName, String startRow, String stopRow, Integer currentPage, Integer pageSize) throws IOException { ListMapString, String mapList = null; mapList = new LinkedListMapString, String(); ResultScanner scanner
显示全部
相似文档