HBase学习笔记-统计表行数
2014-07-22 17:18
246 查看
HBase统计表行数的方式如下:
一、HBase Shell
hbase[b]> count
'tableName', INTERVAL => 1000, CACHE => 1000
[/b]
INTERVAL为统计的行数间隔,默认为1000,CACHE为统计的数据缓存
二、HBase自带MapReduce表行数统计RowCounter
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tableName'
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter -Dmapreduce.job.queuename=queue1
'tableName'
三、使用Scan与Filter的方式对表行数进行统计
四、使用Coprocessor新特性来对表行数进行统计
一、HBase Shell
hbase[b]> count
'tableName', INTERVAL => 1000, CACHE => 1000
[/b]
INTERVAL为统计的行数间隔,默认为1000,CACHE为统计的数据缓存
二、HBase自带MapReduce表行数统计RowCounter
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter 'tableName'
$HBASE_HOME/bin/hbase org.apache.hadoop.hbase.mapreduce.RowCounter -Dmapreduce.job.queuename=queue1
'tableName'
三、使用Scan与Filter的方式对表行数进行统计
public static long rowCount(String tableName) { long rowCount = 0; try { HTable table = new HTable(configuration, tableName); Scan scan = new Scan(); scan.setFilter(new FirstKeyOnlyFilter()); ResultScanner resultScanner = table.getScanner(scan); for (Result result : resultScanner) { rowCount += result.size(); } } catch (IOException e) { logger.info(e.getMessage(), e); } return rowCount; }
四、使用Coprocessor新特性来对表行数进行统计
public static void addTableCoprocessor(String tableName, String coprocessorClassName) { try { admin.disableTable(tableName); HTableDescriptor htd = admin.getTableDescriptor(Bytes.toBytes(tableName)); htd.addCoprocessor(coprocessorClassName); admin.modifyTable(Bytes.toBytes(tableName), htd); admin.enableTable(tableName); } catch (IOException e) { logger.info(e.getMessage(), e); } } public static long rowCount(String tableName, String family) { AggregationClient ac = new AggregationClient(configuration); Scan scan = new Scan(); scan.addFamily(Bytes.toBytes(family)); long rowCount = 0; try { rowCount = ac.rowCount(Bytes.toBytes(tableName), new LongColumnInterpreter(), scan); } catch (Throwable e) { logger.info(e.getMessage(), e); } return rowCount; }
@Test public void testTableRowCount() { String coprocessorClassName = "org.apache.hadoop.hbase.coprocessor.AggregateImplementation"; HBaseUtils.addTableCoprocessor("user", coprocessorClassName); long rowCount = HBaseUtils.rowCount("user", "basic"); System.out.println("rowCount: " + rowCount); }
相关文章推荐
- HBase学习笔记-统计表行数
- hadoop学习笔记之-hbase完全分布模式安装
- 《HBase 权威指南》学习笔记一 引言
- HBASE学习笔记--概述
- HBase学习笔记(一)
- HBASE学习笔记--API
- HBASE学习笔记--配置信息
- [学习笔记]小型论坛功能——实现按照指定每页的行数来分页显示记录[3]
- hbase 学习笔记二----shell
- hadoop学习笔记之-hbase完全分布模…
- hbase 学习笔记一---基本概念
- Hadoop学习笔记(一)HBase脚本分析(二)hbase-daemon.sh
- HBase/Hadoop学习笔记
- zookeeper3.3学习笔记6:HBase中的zookeeper
- hbase 学习笔记二----shell
- Hadoop学习笔记(一)HBase脚本分析(二)hbase-daemon.sh
- Hbase学习笔记(一)
- Hbase 学习笔记[1] 安装及配置
- Hbase学习笔记
- HBASE学习笔记--shell