我现在有个需求,就是需要实时统计出 HBase 里面到底有多少行的数据,现在我的实现如下:
for (Result rs = scanner.next(); rs != null; rs = scanner.next()) {
number++;
}
如果数据量达到数百万,使用上面的方法计算时间会变得很大。这肯定不是好的办法,大家有什么实现思路呢?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可以试试 HBase 里面的 RowCounter 。RowCounter 内部是使用 MapReduce 来计算一个表里面的行数。使用方法如下:
$ hbase org.apache.hadoop.hbase.mapreduce.RowCounter <tablename>
Usage: RowCounter [options]
<tablename> [
--starttime=[start]
--endtime=[end]
[--range=[startKey],[endKey]]
[<column1> <column2>...]
]