参照博客:http://ronxin999.blog.163.com/blog/static/422179202013621111545534/
提供了两种解决思路,这里使用的是第一种
这里使用hbase的PageFilter实现简单的分页
分页过滤,通过设置pagesize参数可以返回每一页page的数量。
客户端需要记住上一次访问的row的key值。
package hbaseTest; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.HTable; 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.Filter; import org.apache.hadoop.hbase.filter.PageFilter; import org.apache.hadoop.hbase.util.Bytes; import java.io.IOException; /** * Hello world! */ public class PageFilterExample { public static void main(String[] args) throws IOException { Configuration config = HBaseConfiguration.create(); config.set("hbase.zookeeper.quorum", "QT-H-0038"); String tableName = "testTable"; String cfName = "colfam1"; final byte[] POSTFIX = new byte[] { 0x00 }; HTable table = new HTable(config, tableName); Filter filter = new PageFilter(15); byte[] lastRow = null; int totalRows = 0; while (true) { Scan scan = new Scan(); scan.setFilter(filter); if(lastRow != null){ //注意这里添加了POSTFIX操作,不然死循环了 byte[] startRow = Bytes.add(lastRow,POSTFIX); scan.setStartRow(startRow); } ResultScanner scanner = table.getScanner(scan); int localRows = 0; Result result; while((result = scanner.next()) != null){ System.out.println(localRows++ + ":" + result); totalRows ++; lastRow = result.getRow(); } scanner.close(); if(localRows == 0) break; } System.out.println("total rows:" + totalRows); } }
因为hbase的row是字典序列排列的,因此上一次的lastrow需要添加额外的0表示新的开始。另外startKey的那一行是包含在scan里面的。
相关推荐
hbase分页查询实现.pdf
hbase分页查询实现
hbase分页查询实现[归类].pdf
hbase查询分页分页
里面包括了特定场合下,HBase随机查询的一些性能指标参考以及调优策略
hbase java api 访问 查询、分页 详情请看:http://blog.csdn.net/wild46cat/article/details/53321409
hbase-page hbase 分页
hbase 利用pagefilter支持分页功能,可以显示总条目,指定每页个数,获取总页码。
基于hadoop+hbase+springboot实现的分布式网盘系统,适合本科毕业设计 资源包含的整个demo在Hadoop,和Hbase环境搭建好了,可以启动起来。 技术选型 1.Hadoop 2.Hbase 3.SpringBoot ...... 系统实现的功能 1.用户...
用户历史订单列表查询rowkey设计技巧 最左前缀原则
HBaseCoprocessor的实现与应用.pdf
实现sql查询Hbase,Phoenix 基于Hbase给面向业务的开发人员提供了以标准SQL的方式对Hbase进行查询操作,并支持标准SQL中大部分特性:条件运算,分组,分页,等高级查询语法。 这里提供两个版本: apache-phoenix-4.8.1...
java操作Hbase之Hbase专用过滤器PageFilter的使用源代码,附带全部所需源代码,欢迎下载学习。
基于spring boot 的spring-boot-starter-hbase自动注解实现,HbaseTemplate的直接使用
基于hadoop+hbase+springboot实现分布式网盘系统
实现了HBase的存取,很有借鉴性。是一个在eclipse运行的完整代码
这是hbase对数据存储的代码实现,让你轻松秒懂hbase,
基于hbase + spark 实现常用推荐算法(主要用于精准广告投放和推荐系统).zip
基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot实现分布式网盘系统源码+数据集+详细文档(高分毕业设计).zip基于hadoop+hbase+springboot...
HBase_SI_--_实现HBase_ACID的理论